MFC 程序最小化到系统托盘区的一个简单实例

来源:互联网 发布:高效程序员的45个习惯 编辑:程序博客网 时间:2024/05/16 10:54

准备工作:

  

   在开始之前,我们需要弄清出一下东东,当然,你也可以知其然而不知其所以然,会用就好。

          1. MFC 自定义消息的过程(详见后文)

          2. BOOL Shell_NotifyIcon(
                                          DWORD dwMessage,
                                          PNOTIFYICONDATA pnid
                                         );     

              API  函数(详见后文)

          3. NOTIFYICONDATA 结构体(详见后文)

 

 

概念简介:(您可以跳过此步骤)

          1. MFC 自定义消息的过程

 

           第一步:定义消息。

               #define WM_JarvisChu(WM_USER+1) 

               在.cpp文件中添加

 

        第二步:在类头文件的AFX_MSG块中说明消息处理函数:

               afx_msg LRESULT OnJarvisChu(WPARAM wParam, LPARAM lParam);

               注:这里的OnJarvisChu 可以是你自己取得任意名称,但记住,这是我们的自定义消息的处理函数


          第三步:在用户类的消息块中,使用ON_MESSAGE宏指令将消息映射到消息处理函数中。

              ON_MESSAGE(WM_JarvisChu, OnJarvisChu)

              注:这里是通知MFC OnJarvisChu就是我们自定义消息WM_JarvisChu的处理函数

 

       第四步:实现消息处理函数。

              在.cpp文件中实现函数 LRESULT OnJarvisChu(WPARAM wParam, LPARAM lParam);

 

                  

          2. BOOL Shell_NotifyIcon(
                                          DWORD dwMessage,
                                          PNOTIFYICONDATA pnid
                                         );  

             这个API 函数的作用是 将 pnid存储的信息来做什么事

             参见MSDN

            

          3. NOTIFYICONDATA 结构体

              还是看MSDN 吧,比我讲的专业具体!呵呵

 

实例演示:

        步骤一: 新建MFC 对话框工程 ToTray 

                   在主对话框上添加一个Button ,ID修改为 IDC_BTN_TO_TRAY

                   为其添加消息相应函数void CToTrayDlg::OnBtnToTary() {}

                   这个button的作用是 但我们点击时,程序就会最小化到系统托盘区

 

        步骤二:实现OnBtnToTary()

               

                在这段程序中,我们指定了一个自定义消息WM_SHOWTASK 给NOTIFYICONDATA 结构体,下面就是要实现这个消息

 

        步骤三:添加自定义消息WM_SHOWTASK

                   还记得上面讲的内容么?我们现在就学以致用吧!将下面的代码安置到合适位置吧

                  #define WM_SHOWTASK (WM_USER + 1)//自定义消息

                  afx_msg LRESULT onShowTask(WPARAM wParam,LPARAM lParam);  //消息响应函数声明

                  ON_MESSAGE(WM_SHOWTASK,onShowTask)       //消息映射

        步骤四:消息相应函数的实现 LRESULT onShowTask(WPARAM wParam,LPARAM lParam); 

         步骤五:运行程序

        

         如果代码没有敲错,这是你就可以看见效果了

     

         需要说明的是,这里有些代码是我参照网上搜索出的结果修改过的。支持原创啊!

                     

              

 

 

 

 

 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 5个月宝宝发烧怎么办 五个月小孩38度怎么办 宝宝3岁还不会说话 怎么办 两岁宝宝流口水厉害怎么办 两周宝宝不说话怎么办 两岁宝宝说话有点口吃怎么办 一周岁的宝宝脾气不好怎么办 九个月的宝宝脾气不好怎么办 两岁宝宝脾气不好怎么办 2岁宝宝脾气不好怎么办 3岁宝宝脾气不好怎么办 脾气不好吓到宝宝了怎么办 四个月宝宝脾气不好怎么办 5岁说话不清楚该怎么办 小孩快上幼儿园了不怎么说话怎么办 四岁宝宝吐字不清楚怎么办 孕28周胎儿腿短怎么办 b超显示腿短怎么办 2岁多宝宝不愿意说话怎么办 6岁儿童咬字不清怎么办 两岁宝宝爱看电视怎么办 两岁宝宝喜欢看电视怎么办 三岁宝宝说话不清晰怎么办 儿子快四岁了说话不清楚怎么办 儿子快三岁了说话不清楚怎么办 2岁宝宝受刺激了怎么办 一岁的宝宝口臭怎么办 古话说小孩牙齿掉了怎么办 宝宝三岁胆子小怎么办 小宝宝就是不愿意学说话怎么办 2岁宝宝体重偏重怎么办 三岁宝宝体重偏重怎么办 3岁宝宝说话晚怎么办 孩子吃饭总说话吃饭慢怎么办 我的孩子不聪明怎么办 小孩个子长不高怎么办 晚修自己老喜欢讲话怎么办 宝2岁宝脾气大怎么办 宝宝比同龄孩子发育晚怎么办 早教机构业绩不好怎么办 孩子上早教课哭怎么办