1CM

  

虚函数OnWndMsg的利用

OnWndMsg是在 Cwnd 中定义的虚函数;CWnd::OnWndMsg
virtual BOOL OnWndMsg( UINT message, WPARAM wParam, LPARAM lParam, LRESULT* pResult );
Remarks
This member function is called by WindowProc, or is called during message reflection.
因为不管是什么类型的窗口基类的根源几乎都是CWnd(在MFC中);
所以巧妙的利用这个函数可以实现很多不能正常办法实现的问题;
简单举例子就是:
在 ListCttl中 Head的鼠标右击消息;
利用OnWndMsg截取Head的WM_RBUTTONUP消息
然后自定义消息发送给所需要的窗口中去;
利用OnWndMsg无所不能


BOOL CMainFrame::OnWndMsg( UINT message, WPARAM wParam, LPARAM lParam, LRESULT* pResult )
{
if(m_bActive)
{
static unsigned long i=0;
i++;
char buf[256];
sprintf(buf,"%08ld:%08X %08X %08X %08X",
i,message, wParam, lParam, pResult);
m_lb.InsertString(0,buf);
}
return CFrameWnd::OnWndMsg(message, wParam, lParam, pResult);
}

posted on 2007-03-13 10:28 1CM 阅读(3629) 评论(4)  编辑 收藏 引用

评论

# re: 虚函数OnWndMsg的利用 2007-12-02 18:48 请帮忙,拜托!

在 ListCttl中 Head的鼠标右击消息;
利用OnWndMsg截取Head的WM_RBUTTONUP消息

请问 我怎样获取 右击的是表头呢? 我不知道怎样处理“截取Head的WM_RBUTTONUP消息”

请给出例子好吗,不甚感激
  回复  更多评论   

# re: 虚函数OnWndMsg的利用 2007-12-03 17:28 南龙

http://sourceforge.net 查找 eMule 的原代码,
那里用过 OnWndMsg 虚函数,你会发现有以外的收获。  回复  更多评论   

# re: 虚函数OnWndMsg的利用 2007-12-03 19:03 菜菜

问题已经解决谢谢~~  回复  更多评论   

# re: 虚函数OnWndMsg的利用 2010-09-12 08:52 jw

VC/MFC讨论小组:58774268
通过QQ平台,让VC/MFC爱好者能够少走弯路,共同进步。  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理