|
前天晚上忙这个问题忙到头疼,其实问题的解决很简单,怪我没有好好看文档,贴出代码:
#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;
}
感觉自己这次走的弯路有些荒唐,很简单点东西,希望后来者可以不用像我一样
|
|