|
emwin的消息是怎么传递的,看例程是改变全局变量而已,这不是传值吧,我修改为传指针怎么都不行,具体该怎么搞啊
case WM_MSGUSER:
EDIT_SetText(WM_GetDialogItem(pMsg->hWin, ID_EDIT_0), dispE ? "759" : "123");
//EDIT_SetText(WM_GetDialogItem(pMsg->hWin, ID_EDIT_0), &message.Data.p); //是这样吗
break;
case WM_INIT_DIALOG://初始化消息,创建窗口/控件时有效,比如在这里设置一些控件的初始参数
hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_0);
EDIT_SetText(hItem, "123");
EDIT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_0);
BUTTON_SetText(hItem, "Focus To Edit");
hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_1);
BUTTON_SetText(hItem, "Send Message");
break;
case WM_NOTIFY_PARENT://操作触发消息处理(操作屏幕程序会跑到这里),比如点击按键、点击编辑框(任何的操作)等等......
Id = WM_GetId(pMsg->hWinSrc);
NCode = pMsg->Data.v;
switch(Id) {
case ID_EDIT_0:
switch(NCode) {
case WM_NOTIFICATION_CLICKED:
break;
case WM_NOTIFICATION_RELEASED:
break;
case WM_NOTIFICATION_VALUE_CHANGED:
break;
}
break;
case ID_BUTTON_0: //ID为ID_BUTTON_0的按键被点击
switch(NCode) {
case WM_NOTIFICATION_CLICKED: //按下动作消息
break;
case WM_NOTIFICATION_RELEASED: //弹起动作消息
WM_SetFocus(WM_GetDialogItem(pMsg->hWin, ID_EDIT_0)); //聚焦到ID_EDIT_0控件
break;
}
break;
case ID_BUTTON_1: //ID为ID_BUTTON_1的按键被点击
switch(NCode) {
case WM_NOTIFICATION_CLICKED: //按下动作消息
break;
case WM_NOTIFICATION_RELEASED: //弹起动作消息
dispE = !dispE;
message.MsgId = WM_MSGUSER;
//message.Data.p = buffer; //这个该怎么传
//发送消息到Framewin的Client(客户区窗口),本函数即为该Client窗口的回调函数,也就是发送消息到本函数,pMsg->hWin是Framewin句柄(非Client区句柄)
WM_SendMessage(WM_GetClientWindow(pMsg->hWin), &message);
break;
}
break;
|
|