Visual C++若干编程技巧

2014-07-12 22:44:45|?次阅读|上传:wustguangh【已有?条评论】发表评论

关键词:C/C++, MFC, 界面设计|来源:唯设编程网

6. 使应用程序的图标显示在任务栏通知区域

在Windows 95任务条的右边有一个区域被称为通知区域,在其中可以显示一些应用程序的图标,用鼠标单击其中的图标一般能弹出应用程序的菜单,双击则能显示应用程序的完整窗口界面。时钟和音量控制是任务条通知区最常见的图标。

任务条通知区编程可以通过Windows 95外壳编程接口函数Shell_NotifyIcon来实现,该函数在shellapi.h头文件中声明,其原型如下:

WINSHELLAPI BOOL WINAPI Shell_NotifyIcon( DWORD dwMessage, PNOTIFYICONDATA pnid);

dwMessage是对通知区图标进行操作的消息,主要有三中,如下表所示。

Shell_NotifyIcon使用的消息

消息说明

NIM_ADD

在任务条通知区插入一个图标

NIM_ DELETE

在任务条通知区删除一个图标

NIM_ MODIFY

对任务条通知区的图标进行修改

pnid传入一个NOTIFYICONDATA结构的指针。NOTIFYICONDATA结构声明及各域的意义表示如下:

typedef struct _NOTIFYICONDATA { // nid
   DWORD cbSize; // NOTIFYICONDATA结构的字节数
   HWND hWnd; // 处理通知区图标消息的窗口句柄
   UINT uID; // 通知区图标的ID
   UINT uFlags; // 表示下述三项是否有意义的标志
   UINT uCallbackMessage; // 鼠标点击图标所发出消息的ID
   HICON hIcon; // 图标句柄
   char szTip[64]; // 当鼠标移到图标上时显示的提示信息
} NOTIFYICONDATA, *PNOTIFYICONDATA;

当用Shell_NotifyIcon在任务条通知区中放置一个图标时,同时也定义了一条回调消息,当用户用鼠标单击或双击图标时,NOTIFYICONDATA结构中指定的窗口句柄将接受到该消息。该消息的lParam参数将说明鼠标操作的方式。当应用程序退出时,应删除任务条中的图标。

以上是一些Visual C++实际编程过程中的一些经验总结,包括了创建不规则形状窗口、用鼠标单击窗口标题条以外区域移动窗口、使用上下文菜单、使应用程序只能运行一个实例、使应用程序的图标显示在任务栏通知区域等内容,Visula C++编程可以实现的功能是强大的,更多的经验总结有待于以后继续补充^_^

发表评论0条 】
网友评论(共?条评论)..
Visual C++若干编程技巧