|
看到论坛上牛人很多,比如eric2013大神,请问,
我用emWIN实现了一个下拉列表框,触摸屏触摸后,能打开下拉列表,但是无法获取下拉列表框的选项。
增加自动滑动条,触摸可以移动,选项内容无法获取,这个下拉列表也不能收起来,请问eric2013及各位大神,这个如何处理才好呢。
下面是代码:
#include "GUI.h"
#include "WM.h"
#include "DIALOG.h"
#include "SPINBOX.h"
#include "WIDGET.h"
#include "DROPDOWN.h"
static void _cbBkWin(WM_MESSAGE* pMsg)
{
WM_HWIN hItem; //定义窗体项
int NCode;
int Id;
int list_value;
switch (pMsg->MsgId)
{
case WM_PAINT:
GUI_SetBkColor(GUI_BLUE);
GUI_Clear();
GUI_SetFont(&GUI_Font24B_ASCII);
GUI_SetColor(GUI_RED);
//GUI_DispStringHCenterAt("Button Example", 160, 5);
GUI_DispStringHCenterAt("Dropdown Example", 160, 5);
break;
case WM_NOTIFY_PARENT:
Id = WM_GetId(pMsg->hWinSrc);
NCode = pMsg->Data.v; //??
switch(Id)
{
case ID_LISTBOX_0:
switch(NCode)
{
case WM_NOTIFICATION_CLICKED:
//hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTBOX_0);
//DROPDOWN_Expand(hItem);
break;
case WM_NOTIFICATION_RELEASED:
//hItem= WM_GetDialogItem(pMsg->hWin, ID_LISTBOX_0);
// DROPDOWN_Collapse(hItem);
break;
case WM_NOTIFICATION_SEL_CHANGED:
hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTBOX_0);
list_value = LISTBOX_GetSel(hItem);
switch(list_value)
{
case 0:
GPIO_SetBits(LED_PORT ,LED_PIN);
GPIO_ResetBits(LED_PORT, LED1_PIN_1);
break;
case 1:
GPIO_SetBits(LED_PORT ,LED_PIN);
GPIO_ResetBits(LED_PORT, LED1_PIN_2);
break;
case 2:
GPIO_SetBits(LED_PORT ,LED_PIN);
GPIO_ResetBits(LED_PORT, LED1_PIN_3);
break;
case 3:
GPIO_SetBits(LED_PORT ,LED_PIN);
GPIO_ResetBits(LED_PORT, LED1_PIN_4);
break;
default:
break;
}
break;
}
break;
}
break;
default:
WM_DefaultProc(pMsg);
}
}static void Dropdown_Demo(void)
{
WM_HWIN hDropDown;
int NumEntries;
int i;
//创建下拉列表
hDropDown =DROPDOWN_CreateEx(160, 50, 120, 115-50, WM_HBKWIN, WM_CF_SHOW, 0, ID_LISTBOX_0);
//WM_SetFocus(hDropDown);
DROPDOWN_AddString(hDropDown, "LED1");
DROPDOWN_AddString(hDropDown, "LED2");
DROPDOWN_AddString(hDropDown, "LED3");
DROPDOWN_AddString(hDropDown, "LED4");
//DROPDOWN_Expand(hDropDown);
DROPDOWN_SetFont(hDropDown, &GUI_Font16B_1);
DROPDOWN_SetAutoScroll(hDropDown, 1);
DROPDOWN_SetTextColor(hDropDown, 0, 0x00BB00);
DROPDOWN_SetTextColor(hDropDown, 2, GUI_BLACK);
DROPDOWN_SetBkColor(hDropDown, 0, GUI_YELLOW);
DROPDOWN_SetBkColor(hDropDown, 2, GUI_RED);
// WM_SetFocus(hDropDown);
// NumEntries = DROPDOWN_GetNumItems(hDropDown); //???????
// for (i = 0; i < NumEntries ; i++)
// {
// DROPDOWN_IncSel(hDropDown); //
//
// }
//
}
void MainTask(void)
{
WM_SetCallback(WM_HBKWIN, _cbBkWin);
Dropdown_Demo();
while (1)
{
GUI_Delay(500);
}
} |
|