2014-07-12 22:44:45|?次阅读|上传:wustguangh【已有?条评论】发表评论
关键词:C/C++, MFC, 界面设计|来源:唯设编程网
在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++编程可以实现的功能是强大的,更多的经验总结有待于以后继续补充^_^