???????????发消息???????????????
第一步:定义
#define WM_APP_SHOW_TEXT (WM_USER + 0)第二部:发消息
WM_MESSAGE Msg;
Msg.MsgId = WM_APP_SHOW_TEXT;
Msg.hWinSrc = pMsg->hWin;
WM_SendMessage(WM_HBKWIN, &Msg);
第三部:收消息
case WM_APP_SHOW_TEXT:
if (hEdit == 0) {
hEdit = pMsg->hWinSrc;
}
WM_HideWindow(hEdit);
ShowText = 1;
WM_InvalidateWindow(WM_HBKWIN);
WM_CreateTimer(WM_HBKWIN, 0, 3000, 0);
break;
为什么case么有收到呢?
第一种:
int qqq=0;//-------------测试
static void _cbDialog(WM_MESSAGE * pMsg)
{
static WM_MESSAGE Msg;
switch (pMsg->MsgId) {
case WM_PAINT:
break;
case WM_APP_SHOW_TEXT://这里收到消息呀!!
qqq=!qqq;//-------------测试
break;
case WM_INIT_DIALOG:
break;
case WM_NOTIFY_PARENT:
Id = WM_GetId(pMsg->hWinSrc);
NCode = pMsg->Data.v;
switch(Id) {
case ID_BUTTON_0: //确认
switch(NCode) {
case WM_NOTIFICATION_CLICKED:
break;
case WM_NOTIFICATION_RELEASED:
WM_SendMessageNoPara(WM_GetClientWindow(hPage[2]),WM_APP_SHOW_TEXT);//--发送出去 触发一下
break;
}
break;
第二种和上面一样的!需要注意的是和定时器一样,官方历程存在问题 WM_SendMessage(WM_HBKWIN, &Msg);这个会失败
Msg.MsgId = WM_APP_SHOW_TEXT;
Msg.hWinSrc = pMsg->hWin;
// WM_SendMessage(hPage[2], &Msg);
WM_SendMessage(WM_GetClientWindow(hPage[2]), &Msg);
如此就可以发消息了。
???????????????int转文本???????????????????????
我的办法:
sprintf(strbuf,"%d",200);
TEXT_SetText(hItem, strbuf);
参考历程:
TEXT_SetText(hItem, "10000");
sprintf 最常见的应用之一莫过于把整数打印到字符串中,所以,spritnf 在大多数场合可以替代itoa。如:
//把整数123 打印成一个字符串保存在s 中。
sprintf(s, "%d", 123); //产生"123"
?????????????下拉菜单读取??????????????????????????
case WM_NOTIFICATION_SEL_CHANGED:
hItem = WM_GetDialogItem(pMsg->hWin, ID_DROPDOWN_1);
Cardfre = DROPDOWN_GetSelExp(hItem); //DROPDOWN_GetUserData(hItem);0-1-2-3-4 这样的
这样获得下拉的ID的 不是直接拿到内容的。
我们就建立一个结构体吧!!