note : windows message process
发布日期:2021-06-30 22:04:23
浏览次数:2
分类:技术文章
本文共 2537 字,大约阅读时间需要 8 分钟。
实验环境: vs2010 + WTL8.1 + dialog
实验目的:为了发生特定系统消息时,做一些额外的处理。
e.g.
* ALT+F4关闭程序
* 点击任务栏上的程序图标,恢复程序
// MainDlg.h : interface of the CMainDlg class///#pragma onceclass CMainDlg : public CDialogImpl, public CUpdateUI , public CMessageFilter, public CIdleHandler{public: enum { IDD = IDD_MAINDLG }; virtual BOOL PreTranslateMessage(MSG* pMsg); virtual BOOL OnIdle(); BEGIN_UPDATE_UI_MAP(CMainDlg) END_UPDATE_UI_MAP() BEGIN_MSG_MAP(CMainDlg) MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog) MESSAGE_HANDLER(WM_DESTROY, OnDestroy) COMMAND_ID_HANDLER(ID_APP_ABOUT, OnAppAbout) COMMAND_ID_HANDLER(IDOK, OnOK) COMMAND_ID_HANDLER(IDCANCEL, OnCancel) MESSAGE_HANDLER(WM_SYSCOMMAND, OnSysCommand) END_MSG_MAP()// Handler prototypes (uncomment arguments if needed):// LRESULT MessageHandler(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)// LRESULT CommandHandler(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)// LRESULT NotifyHandler(int /*idCtrl*/, LPNMHDR /*pnmh*/, BOOL& /*bHandled*/) LRESULT OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/); LRESULT OnDestroy(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/); LRESULT OnAppAbout(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/); LRESULT OnOK(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/); LRESULT OnCancel(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/); LRESULT OnSysCommand(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/); void CloseDialog(int nVal);};
LRESULT CMainDlg::OnSysCommand(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL & bHandled){ if (WM_SYSCOMMAND != uMsg) return -1; OutputDebugStringW(L">> CMainDlg::OnSysCommand\r\n"); switch (wParam) { /// when maindlg show normal, click the minimize dialog on task tar, entry here case SC_MINIMIZE: ///< the minimize button of main dialog press down OutputDebugStringW(L"SC_MINIMIZE\r\n"); break; /// ALT + F4 key press down case SC_CLOSE: ///< the close button of main dialog press down OutputDebugStringW(L"SC_CLOSE\r\n"); break; case SC_RESTORE: ///< when maindlg minimized, click the minimize dialog on task tar, entry here /// if need, refresh main dialog when display resolution changed OutputDebugStringW(L"SC_RESTORE\r\n"); break; default: break; } bHandled = FALSE; ///< if set bHandled to TRUE, the message process invalid OutputDebugStringW(L"<< CMainDlg::OnSysCommand\r\n"); return 0;}
转载地址:https://lostspeed.blog.csdn.net/article/details/18182563 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2024年04月19日 15时16分56秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
gym 101137 L Lazy Coordinator(概率)
2019-04-30
Mysql 入门
2019-04-30
Vue 之 axios 篇
2019-04-30
vue 之动画
2019-04-30
js的基础语法
2019-04-30
vue使用iconfont
2019-04-30
linux 查看文件夹权限
2019-04-30
linux tar 备份
2019-04-30
ubuntu中配置任意应用的快捷键
2019-04-30
ln 命令 硬链接
2019-04-30
chkconfig使用和级别介绍
2019-04-30
ubuntu 快捷键
2019-04-30
linux 根目录下文件夹分析
2019-04-30
My notes about backup to ubuntu
2019-04-30
linux 查看分区和文件大小
2019-04-30
Not using PCAP_FRAMES 解释(snort中)
2019-04-30
技术转管理?这些“坑”你要绕道走
2019-04-30
领域驱动设计(DDD)前夜:面向对象思想
2019-04-30
Ubuntu 14.04 安装TM2009/QQ
2019-04-30
Camera驱动调试小记
2019-04-30