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.//移动

时间: 2024-10-07 14:54:23

onsyscommand的相关文章

MFC框架程序剖析

一.           MFC MFC(Microsoft Foundation Class,微软基础类库)是微软为了简化程序员的开发工作所开发的一套C++类的集合,是一套面向对象的函数库,以类的方式提供给用户使用.利用这些类,可以有效发帮助程序员完成Windows应用程序的开发 二.           theAPP theApp代表应用程序实例. 在C×××App类中 ,有 theApp 这个变量,它是CWinApp类的派生类的对象,是一个全局变量. 全局变量在WinMain()前被创建.

控件综合2

下拉框 // MFCDay002Dlg.cpp : 实现文件 // #include "stdafx.h" #include "MFCDay002.h" #include "MFCDay002Dlg.h" #include "afxdialogex.h" #include"CmyDialog.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // 用于应用程序“关于

C++windows内核编程笔记day07_day08,可视化建菜单、加速键使用、绘图等

可视化操作创建的菜单,加载到窗口. 方法1:注册时指定菜单 wce.lpszMenuName=MAKEINTRESOURCE(IDR_MENUMAIN);//数字形式的资源ID转换为字符串形式的资源 方法2: //创建窗口时加载菜单资源 HMENU menumain= LoadMenu(g_hinstance,MAKEINTRESOURCE(IDR_MENUMAIN)); menumain 传入 CreateWindowEx();//倒数第三个参数 窗口指定小图标: 1.注册时指定 wce.hI

OpenCV:基于MFC的视频播放器和图片读取器

实例工程包下载[OpenCV:基于MFC的视频播放器和图片读取器] 一.实现的功能 1.打开本地视频进行读取.播放.暂停.停止控制 2.图片打开功能分为两种:可使用"打开图片"按钮打开本地图片,或者点击comobox里面设定的图片列表选择并显示图片 二.编译环境 OS:Win8.1 x64 IDE:  Visual Studio 2013 OpenCV: 2.4.8 三.主要思路 1.视频的滑动条控制: ①主窗体的OnHScroll()响应函数负责响应slider滑动条的变化,这样就轻

WSAAsyncSelect模型的小i例子

一个异步模型的聊天程序 服务器端: 自定义消息(放在StdAfx.h文件里面即可) #define WM_SOCKET WM_USER + 1 然后注册消(在VS2012里面可以自动完成注册和映射 ) afx_msg LRESULT OnSocket(WPARAM wParam, LPARAM lParam); 然后写上 映射 ON_MESSAGE(WM_SOCKET, &CChatDlg::OnSocket) 对话框的头文件代码 // CChatDlg 对话框 class CChatDlg :

EXE加锁器 只是思路

代码有点乱 但是我不想整理 1 // AddBoxDlg.cpp : 实现文件 2 // 3 4 #include "stdafx.h" 5 #include "AddBox.h" 6 #include "AddBoxDlg.h" 7 #include "afxdialogex.h" 8 #include "PEInfo.h" 9 #include <ImageHlp.h> 10 #ifdef

【win32】day04-Win32消息机制

消息机制 过程驱动:程序是按照我们预先定义好的顺序 执行,每执行一步,下一步都已经按照预定的顺序继续执行,直到程序结束. 事件驱动:程序的执行顺序是无序的.某个时间点所执行的代码,是由外界通知.由于我们无法决定用户执行顺序,所以代码的执行也是无序. Win32的消息机制 -事件驱动. Win32消息程序 2.1 Win32窗口注册 2.2 Win32窗口创建 2.3 WIn32消息循环 2.3.1 GetMessage BOOL GetMessage( LPMSG lpMsg,//存放获取到的消

清理文件2

// FileCleanerDlg.h : 头文件 // #pragma once #include <vector> using std::vector; // CFileCleanerDlg 对话框 class CFileCleanerDlg : public CDialogEx { // 构造 public: CFileCleanerDlg(CWnd* pParent = NULL); // 标准构造函数 // 对话框数据 enum { IDD = IDD_FILECLEANER_DIA

vc 6.0 生成word报表

可以用于将数据 生产一个报表: // CMDIDemoDlg.cpp : implementation file // #include "stdafx.h" #include "CMDIDemo.h" #include "CMDIDemoDlg.h" #include"comdef.h" #include"atlbase.h" #include"msword.h" #ifdef _DE