|
同样的回调函数(不同点只是消息WM_INIT_DIALOG和WM_CREATE),用对话框方式回调时,里面的hEdit有光标,而用窗口方式回调时,则没有光标,按键没反应,感觉没有聚焦上,不知道为什么?
折腾好久了,请版主和路过大神指导~ ~谢谢~
/*************回调函数*******************************/
static void _cbDialog(WM_MESSAGE * pMsg) {
static EDIT_Handle hEdit;
int NCode;
int Id;
switch (pMsg->MsgId) {
case WM_INIT_DIALOG: // 对话框用WM_INIT_DIALOG消息
// case WM_CREATE: // 窗口用WM_CREATE消息
hEdit = EDIT_CreateEx(92, 97, 96, 32, pMsg->hWin, WM_CF_SHOW, 0, ID_EDIT_0, 40);
EDIT_SetText(hEdit, "123");
EDIT_SetFont(hEdit, GUI_FONT_24B_ASCII);
EDIT_SetTextAlign(hEdit, GUI_TA_LEFT | GUI_TA_VCENTER);
EDIT_SetTextColor(hEdit, EDIT_CI_ENABLED, GUI_MAKE_COLOR(0x00000000));
EDIT_EnableBlink(hEdit, 300, 1);
WM_SetFocus(hEdit);
case WM_PAINT:
GUI_SetBkColor(GUI_WHITE);
GUI_Clear();
default:
WM_DefaultProc(pMsg);
break;
}
}
/*************用对话框方式回调*******************************/
static const GUI_WIDGET_CREATE_INFO _aDialogCreate[] = {
{ WINDOW_CreateIndirect, "Window", ID_WINDOW_0, 0, 0, 800, 600, 0, 0x0, 0 },
};
hWin = GUI_CreateDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), _cbDialog, WM_HBKWIN, 0, 0);
/*************用窗口方式回调*******************************/
hWin = WM_CreateWindow(0, 0, 800, 600, WM_CF_SHOW, _cbDialog, 0); |
|