炫彩界面库论坛

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 5612|回复: 5

自定义窗口消息的发送与处理

 关闭 [复制链接]

该用户从未签到

发表于 2013-1-30 00:27:25 | 显示全部楼层 |阅读模式
前天晚上忙这个问题忙到头疼,其实问题的解决很简单,怪我没有好好看文档,贴出代码:
#include "xcgui.h"
#pragma comment(lib,"XCGUId.lib")
#define WM_TEST WM_USER+1//自定义消息,WM_USER可以理解为系统预定义的消息的最后一个,咱不能抢系统位置
class MyWnd:public CXEventMsg//OO风格,不会的童鞋看文档
{
public:
MyWnd(){}
void Create()
{
  hWindow=XWnd_CreateWindow(0,0,400,300,L"TestBug");
  XCGUI_RegWndMessage(hWindow,WM_TIMER,&MyWnd::OnTimer);//这是按我项目的情形做的,做到了计时器里,其实一样
  XCGUI_RegWndMessage(hWindow,WM_TEST,&MyWnd::OnTest);//注册自己的窗口消息
  SetTimer(XWnd_GetHWnd(hWindow),0,4000,NULL);
  XWnd_ShowWindow(hWindow,SW_SHOW);
}
BOOL OnTimer(HWINDOW hWindow,int timerID,int userData);
BOOL OnTest(HWINDOW hWindow,WPARAM wParam,LPARAM lParam);
//这里是重点,我一直弄不成就是因为函数格式写的不对,我用的MFC自定义消息的格式,XCGUI的格式在文档窗口消息一页//的最下边一点
private:
HWINDOW hWindow;
};
BOOL MyWnd::OnTimer(HWINDOW hWindow,int timerID,int userData)
{
PostMessage(XWnd_GetHWnd(hWindow),WM_TEST,0,0);//发送自定义消息,用SendMessage也行
return false;
}
BOOL MyWnd::OnTest(HWINDOW hWindow,WPARAM wParam,LPARAM lParam)
{
XMessageBox(hWindow,L"Test");
return true;//终止消息传递
}
int WINAPI WinMain(
  HINSTANCE hInstance,      // handle to current instance
  HINSTANCE hPrevInstance,  // handle to previous instance
  LPSTR lpCmdLine,          // command line
  int nCmdShow              // show state
)
{
XInitXCGUI();
MyWnd wnd;
wnd.Create();
XRunXCGUI();
return 0;
}
感觉自己这次走的弯路有些荒唐,很简单点东西,希望后来者可以不用像我一样

该用户从未签到

发表于 2013-1-30 10:55:02 | 显示全部楼层
感谢经验分享!

该用户从未签到

发表于 2013-7-1 14:51:07 | 显示全部楼层
谢谢分享!

该用户从未签到

发表于 2013-10-5 17:39:57 | 显示全部楼层
感谢分享,解决了我一下午的问题

该用户从未签到

发表于 2014-3-14 10:52:46 | 显示全部楼层

感谢分享

该用户从未签到

发表于 2014-11-8 13:54:41 | 显示全部楼层
感谢分享!
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

QQ|Archiver|手机版|小黑屋|炫彩界面库 ( 鄂ICP备2023014763号-1 )

GMT+8, 2024-4-28 11:22 , Processed in 0.067004 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表