词条 | onsyscommand |
释义 | OnSysCommand()这个函数主要是截获控制命令的,msdn上的解释如下: The framework calls this member function when the user selects a command from the Control menu, or when the user selects the Maximize or the Minimize button. 尤其是最大化和最小化窗口的时候,比如现在软件的流行的点关闭按钮,不是退出而是隐藏的情况,就可以在这里来实现, void CMainFrame::OnSysCommand(UINT nID, LPARAM lParam) { if ((nID & 0xFFF0) == SC_CLOSE) ShowWindow(SW_HIDE); ..... } 注意:nID参数的低四位被Windows内部使用。当应用程序测试nID的值时,它必须用位与操作符AND将值0xFFF0与nID的值组合在一起以获得正确的结果 就是这样来实现的, 注意和PreTranslateMessage的区别 PreTranslateMessage是用来截获消息的,msdn的解释如下 Used by class cwinapp to translate window messages before they are dispatched to the TranslateMessage and DispatchMessage Windows functions. virtual BOOL PreTranslateMessage( MSG* pMsg ); nID SC_CLOSE Close the CWnd object. //关闭 SC_MAXIMIZE (or SC_ZOOM) Maximize the CWnd object.//最大化 SC_MINIMIZE (or SC_ICON) Minimize the CWnd object.//最小化 SC_RESTORE Restore window to normal position and size.//还原 SC_SIZE Size the CWnd object. //大小 SC_MOVE Move the CWnd object.//移动 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。