拦截消息(100分)

  • 主题发起人 主题发起人 D影子D
  • 开始时间 开始时间
D

D影子D

Unregistered / Unconfirmed
GUEST, unregistred user!
怎么样拦截sendmessage的WM_close消息
然后进行处理?
 
重载PreTranslateMessage(MSG* pMsg) :
BOOL CTestDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if(pMsg->message == WM_CLOSE)AfxMessageBox("WM_CLOSE");
return CDialog::PreTranslateMessage(pMsg);
}
 
用 wizard 加入相应的消息处理。
 
不行啊,老兄
 
重载WindowProc 函数
代码如下:
// TODO: Add your specialized code here and/or call the base class
if(message==WM_CLOSE)
AfxMessageBox("hello");

return CDialog::WindowProc(message, wParam, lParam);
 
具体的写法是:
首先在mainfrm.h文件中的消息处理那里定义你自己的处理程序
例如:afx_msg void OnClose();
然后在mainfram.cpp中的宏
begin
_MESSAGE_MAP(CMainFrame, CFrameWnd)
//{{AFX_MSG_MAP(CMainFrame)
ON_WM_CREATE()
ON_WM_CLOSE()//新增的消息
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
最后在写出消息处理程序就OK了
void CMainFrame::OnClose()
{
//……
}
 
多人接受答案了。
 
后退
顶部