mfc的 windows消息处理

消息处理函数:

2,消息处理
LRESULT CWork::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
    // TODO: Add your specialized code here and/or call the base class
    switch(message)
    {
        //如果是用户定义的消息
//     case MY_WM_NOTIFYICON:
//         {
//             //鼠标左键单击时work窗口出现
//             if(lParam==WM_LBUTTONDOWN)
//             {
//                 ShowWindow(SW_SHOW);
//             //    m_bIsShow = TRUE;
//
//
//                 HICON hIcon;
//                 hIcon=AfxGetApp()->LoadIcon(IDI_ICON_work);//work窗口图标
//                 m_TrayIcon.hIcon = hIcon;
//                 ::Shell_NotifyIcon(NIM_MODIFY,&m_TrayIcon);
//                 if(hIcon)
//                 {
//                     ::DestroyIcon(hIcon);
//                 }
//
//             }
//             //鼠标右键单击弹出选单
//             else if(lParam==WM_RBUTTONDOWN)
//             {
//                 CMenu menu;
//                 menu.LoadMenu(IDR_MENU_RIGHT); //载入事先定义的选单
//                 CMenu *pMenu = menu.GetSubMenu(0);
//                 CPoint pos;
//                 GetCursorPos(&pos);
//                 pMenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,pos.x,pos.y,AfxGetMainWnd());
//             }
//             break;
//         }
        //如果是系统消息
             case WM_SYSCOMMAND:
                  {
                     //接收到最小化消息和关闭消息时窗口隐藏(即按关闭和最小化按钮)
                     if(wParam == SC_MINIMIZE)
                      {
                        ShowWindow(SW_HIDE);
                          //ShowWindow(visibility);
                        //ShowWindow(SW_HIDE);
                      }
                    if(wParam == SC_CLOSE)
                    {
                        OnExit();
                        //ShowWindow(SW_HIDE);
                        //ShowWindow(visibility);
                        //ShowWindow(SW_HIDE);
                        return 0;
                      }
                      break;
                 }
    default:
        break;
     }
    return CDialog::WindowProc(message, wParam, lParam);
}
时间: 2024-10-08 09:31:26

mfc的 windows消息处理的相关文章

(转)MFC:Windows如何区分鼠标双击和两次单击

在Windows平台上,鼠标左键的按下.松开.快速的两次点击会产生WM_LBUTTONDOWN.WM_LBUTTONUP和WM_LBUTTONDBLCLK消息,但是Windows根据什么来区分连续的两次鼠标按键操作,是两次独立的单击,还是一次双击呢?最近在解决一个问题时,通过使用Spy++和查阅MSDN,弄清楚了这个问题.简单总结如下: Windows根据两个条件来做这个区分:(1)双击的时间间隔    这是很容易想到的.更准确的说法是这样的,两次单击会产生四个鼠标点击消息,如果第三个消息(第二

API、Win32 SDK、Win32项目、MFC、Windows窗体应用程序的区别

[原]API.Win32 SDK.Win32项目.MFC.Windows窗体应用程序的区别 首先来看一下每一个术语的定义: API:Application Programming Interface.Windows操作系统提供给应用程序编程的接口, 简称 为API函数. Win32 SDK:SDK(Software Development Kit)中文是软件开发包.则Win32 SDK是Windows 32位平台下的软件开发包,包括了API函数.帮助文档.微软 提供的一些辅助开发工具. Win3

MFC程序的消息处理顺序

MFC应用程序中处理消息的顺序 1.AfxWndProc()      该函数负责接收消息,找到消息所属的CWnd对象,然后调用AfxCallWndProc 2.AfxCallWndProc()  该函数负责保存消息(保存的内容主要是消息标识符和消息参数)供应用程序以后使用,然后调用WindowProc()函数 3.WindowProc()      该函数负责发送消息到OnWndMsg()函数,如果未被处理,则调用DefWindowProc()函数 4.OnWndMsg()        该函

模仿MFC封装Windows API

.... 最后添加了两个按钮,分别处理每个按钮的单击事件时,走了弯路,本来想的是在QButton中重写OnLButtonDown方法,但是,无法区分是那个按钮.参考这篇文章: http://zhidao.baidu.com/link?url=hsXHcC9q_tfdf4Ztz_juQR4fxY63UU7Ujsj1Tz1rDPKi2xk8JlnzqX4rfCPNyh-SRK-zeIFgECm9H4PuMn4GoK 在按钮的父窗体的WindowProc中处理WM_COMMAND消息,消息的LOWOR

MFC中的消息处理函数

1.在Windows API编程中,直接在消息处理函数中编写WM_PAINT处理代码. 2.在MFC中,CFrameWnd的消息处理过程在哪里呢?MFC时如何将消息处理函数和窗口关联起来的. 在CFrameWnd::CreateEx中,调用PreCreateWindows来注册窗口. AfxDefRegisterClass(AFX_WNDFRAMEORVIEW_REG):注册一个固定的窗口类,这个窗口类中的消息处理过程时一个固定的消息处理过程, 真正将我门的消息处理过程CWnd::WindowP

MFC获取Windows启动状态(正常启动、安全模式启动、网络安全模式启动)

1 UINT nFlags = GetSystemMetrics(SM_CLEANBOOT); 2 switch(nFlags) 3 { 4 case 0: 5 AfxMessageBox(TEXT("正常启动")); 6 break; 7 case 1: 8 AfxMessageBox(TEXT("安全模式启动")); 9 break; 10 case 2: 11 AfxMessageBox(TEXT("网络安全模式启动")); 12 brea

MFC屏蔽 WindowS按键

LRESULT CALLBACK LowLevelKeyboardPorc(int nCode,WPARAM wParam,LPARAM lParam)//屏蔽按键的真正实现方法{ BOOL fEatKeystrole = FALSE; if (nCode == HC_ACTION) { switch (wParam) { case WM_KEYDOWN: case WM_SYSKEYDOWN: case WM_KEYUP: case WM_SYSKEYUP: { PKBDLLHOOKSTRUC

Windows对象、句柄与MFC对象

windowsmfc编程c 目录(?)[-] Windows对象句柄与MFC对象 windows对象 句柄 mfc对象 杂谈 Windows对象.句柄与MFC对象 (2009-04-28 22:11:34) 转载 标签: windows对象 句柄 mfc对象 杂谈 分类: MFC以及Windows编程 Windows对象是以句柄来标识的,对应的MFC类就是这些句柄的C++包装.内存中的Windows对象一定有唯一的句柄来标识,但不 一定有对应的MFC类对象在内存中.当需要获取Windows对象的

MFC Windows程序开发究竟是什么?

MFC Windows程序开发究竟是什么? MFC是一个Application Framework.他是一个完整的程序模型. 什么是MFC?MFC是微软公司出品一个Application Framework.基本上,我们可以认为Application Framework就是一个完整的程序模型,具备标准软件所需的一切基本功能,比如文件存取.打印等等.从C++语言层面来看,Application Framework就是有一整套组合好的“对象”构建起来的模型.从C++语法上来说,MFC就是一套微软提供