WEB开发网
开发学院软件开发VC VC增加自定义消息 阅读

VC增加自定义消息

 2009-10-07 20:29:19 来源:WEB开发网   
核心提示:ClassWizard不允许增加用户自定义消息,所以你必须手工输入,VC增加自定义消息,输入后,ClassWizard就可以象处理其它消息一样处理你自定义的消息了,使用ON_MESSAGE宏指令将消息映射到消息处理函数中,BEGIN_MESSAGE_MAP(CMainFrame,CMDIFrameWnd)//{{AFX

ClassWizard不允许增加用户自定义消息,所以你必须手工输入。输入后,ClassWizard就可以象处理其它消息一样处理你自定义的消息了。

下面是增加自定义消息的步骤:

第一步:定义消息。开发Windows95应用程序时,Microsoft推荐用户自定义消息至少是WM_USER+100,因为很多新控件也要使用WM_USER消息。

第二步:实现消息处理函数。该函数使用WPRAM和LPARAM参数并返回LRESULT。

LRESULTCMainFrame::OnMyMessage(WPARAMwParam,LPARAMlParam) //Lonefox转注:若是通过MFC添加的函数,必须把类定义中的函数头删除,否则和下面的消息映射定义重叠,编译时报重定义错误
{ 
//TODO:处理用户自定义消息 
... 
return0; 
}

第三步:在类头文件的AFX_MSG块中说明消息处理函数:

classCMainFrame:publicCMDIFrameWnd 
{ 
... 
//一般消息映射函数 
protected: 
//{{AFX_MSG(CMainFrame) 
afx_msgintOnCreate(LPCREATESTRUCTlpCreateStruct); 
afx_msgvoidOnTimer(UINTnIDEvent); 
afx_msgLRESULTOnMyMessage(WPARAMwParam,LPARAMlParam); 
//}}AFX_MSG 
DECLARE_MESSAGE_MAP() 
}

第四步:在用户类的消息块中,使用ON_MESSAGE宏指令将消息映射到消息处理函数中。

BEGIN_MESSAGE_MAP(CMainFrame,CMDIFrameWnd) 
//{{AFX_MSG_MAP(CMainFrame) 
ON_WM_CREATE() 
ON_WM_TIMER() 
ON_MESSAGE(WM_MY_MESSAGE,OnMyMessage) 
//}}AFX_MSG_MAP 
END_MESSAGE_MAP

=======================

Lonefox:我用于在多线程全部完成时发送自定义消息到主窗口,主窗口接收。

Tags:VC 增加 定义

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接