截获WM_CLOSE 我想在受到这个消息时执行一个自己定义的函数,但是同时又想让原本可以执行的哪个函数也能够执行,应该怎么做啊? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 重载窗口的PreTranslateMessage.BOOL CMyDlg::PreTranslateMessage(MSG* pMsg) //消息预处理{ if (pMsg->message == WM_CLOSE) { ...... //some thing you will do } return CDialog::PreTranslateMessage(pMsg);}用::GetDesktopWindow()可以得到桌面窗口的句柄 WM_MAXIMIZE,WM_MINIMIZE这两个消息找不到他们的定义啊,这是为什么?WM_CLOSE就可以找到#define WM_CLOSE 0x10 找不到是因为根本没有这两个消息。其实只要重载WM_CLOSE消息的相应方法OnClose()就可以了,在后面调用基类的OnClose()。HWND GetDesktopWindow(VOID); BOOL CMainFrame::PreTranslateMessage(MSG* pMsg){ if (pMsg->message==WM_CLOSE||pMsg->lParam==WM_CLOSE||pMsg->wParam==WM_CLOSE) { MessageBox("close"); } if (pMsg->message==SC_MINIMIZE||pMsg->lParam==SC_MINIMIZE||pMsg->wParam==SC_MINIMIZE) { ShowWindow(SW_HIDE); } return CFrameWnd::PreTranslateMessage(pMsg);} 重载CMainFrame::WindowProc函数LRESULT CMainFrame::WindowProc(UINT message, WPARAM wParam, LPARAM lParam){ switch (message) { case WM_CLOSE: MessageBox("close"); break; case WM_SYSCOMMAND: switch (wParam) { case SC_MINIMIZE: ShowWindow(SW_SHOWMINIMIZED); return 0; case SC_MAXIMIZE: ShowWindow(SW_SHOWMAXIMIZED); return 0; } break;} 为什么MAKEINTRESOURCE要把一个整数强转成指针类型? 关于__stdcall的问题,谢谢您的高见 窗口隐藏的问题 谁能告诉我学哪门语言好? re.Field("side") = _T("1");中的re.Field是什么意思? 有如下代码,出现问题,想大家请教 好简单的一个问题,求助~~ 怎样在鼠标右键中加入一个菜单? 也是关于通讯,有谁编过对RS-485串行通讯接口的程序请指点,还可再加分 CString 串是怎么处理汉字和字母的? 怎样制作一个欢迎界面 那位大虾来讲一讲句柄阿!!我不懂啊!!不好意思!!新来得菜鸟!!
BOOL CMyDlg::PreTranslateMessage(MSG* pMsg) //消息预处理
{
if (pMsg->message == WM_CLOSE)
{
...... //some thing you will do
}
return CDialog::PreTranslateMessage(pMsg);
}用::GetDesktopWindow()可以得到桌面窗口的句柄
这是为什么?WM_CLOSE就可以找到#define WM_CLOSE 0x10
{
if (pMsg->message==WM_CLOSE||pMsg->lParam==WM_CLOSE||pMsg->wParam==WM_CLOSE)
{
MessageBox("close");
}
if (pMsg->message==SC_MINIMIZE||pMsg->lParam==SC_MINIMIZE||pMsg->wParam==SC_MINIMIZE)
{
ShowWindow(SW_HIDE);
}
return CFrameWnd::PreTranslateMessage(pMsg);
}
LRESULT CMainFrame::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_CLOSE:
MessageBox("close");
break;
case WM_SYSCOMMAND:
switch (wParam)
{
case SC_MINIMIZE:
ShowWindow(SW_SHOWMINIMIZED);
return 0;
case SC_MAXIMIZE:
ShowWindow(SW_SHOWMAXIMIZED);
return 0;
}
break;
}