| 网站建设 下载中心 社区论坛 信息公告 MY小屋 |
![]() |
联系我们 设为首页 加入收藏 |
|
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿 论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图 专题 | 应用软件 | 聊天通讯 | Q Q 专栏 | 建站经验 | 在线工具 | 站长Club | 注 册 表 | 旧版 社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 韩国素材 | 素材图库 | 广告服务 | 服务 |
| 新版上线![旧版] | |||||
注:打开慢时请稍等
从任务通知区启动屏幕保护程序http://www.iyit.net 日期:2006-11-2 13:13:55 来源:iyit.net录入 点击: |
SSLaunch用C语言编写,用Visual C++ 5.0编译,是一个基于无模式对话框的程序,同时禁止多个实例,即一次只能有一个实例运行。任务栏通知区图标在对话框初始化时加入,对话框响应程序定义的回调消息,当鼠标左键按下时,弹出一由屏幕保护程序名填充的上下文菜单。对话框关闭(即程序退出)时删除任务栏通知区图标。如果读者有兴趣可以很容易地把它移植成基于 MFC 的程序。 1、任务栏通知区 Windows 95的任务栏中有一个通知区, 应用程序可以把一个图标放入其中,以表示操作状态,并可以有与之相关联的工具用作说明控制。当鼠标出现在此图标的矩形边界内时,向相应的应用程序发送应用程序定义的回调消息。 应用程序通过发送消息增加、修改、删除任务栏图标。消息的发送通过调用函数Shell_NotifyIcon来完成,如果调用成功,则返回TRUE;否则,返回FALSE。Shell_NotifyIcon函数原形如下: WINSHELLAPI BOOL WINAPI Shell_NotifyIcon( DWORD dwMessage, // 消息标识符 PNOTIFYICONDATA pnid // NOTIFYICONDATA 结构 ); 消息标识符可以是 : NIM_ADD 向任务栏通知区加入图标 NIM_DELETE 从任务栏通知区删除图标 NIM_MODIFY 改变任务栏通知区图标 NOTIFYICONDATA 结构: typedef struct _NOTIFYICONDATA { DWORD cbSize; HWND hWnd; UINT uID; UINT uFlags; UINT uCallbackMessage; HICON hIcon; char szTip[64]; } NOTIFYICONDATA, *PNOTIFYICONDATA; 其中: cbSize NOTIFYICONDATA 结构大小 hWnd 接收回调消息窗口句柄 uID 任务栏通知区图标标识 uFlags 指定该结构中那些成员有效 uCallbackMessage 应用程序定义的回调消息 hIcon 任务栏通知区图标句柄 szTip 任务栏通知区提示字符串 参数uFlags可以是下列值的组合: NIF_ICON 任务栏通知区图标有效 NIF_MESSAGE 应用程序定义的回调消息有效 NIF_TIP 任务栏通知区提示字符串有效 a.任务栏通知区图标的加入 BOOL SSLaunch_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam) { // Add an notification icon to the taskbar NOTIFYCONDATA nid; NOTIFYICONDATA nid; nid.cbSize = sizeof(nid); nid.hWnd = hwnd; nid.uID = IDI_SSLAUNCH; nid.uFlags = NIF_MESSAGE|NIF_ICON|NIF_TIP; nid.uCallbackMessage = WM_SSLAUNCHICONNOTIFY; nid.hIcon=LoadIcon(GetWindowInstance(hwnd), KEINTRESOURCE(IDI_SSLAUNCH)); lstrcpyn(nid.szTip,g_szAppName,sizeof(nid.szTip) /sizeof(nid.szTip[0])); return(Shell_NotifyIcon(NIM_ADD, &nid)) } b.任务栏通知区图标的删除 应用程序退出时,应该删除任务通知区上相应的图标: void SSLaunch_OnDestroy(HWND hwnd) { // Remove the notification icon from the taskbar NOTIFYICONDATA nid; nid.cbSize = sizeof(nid); nid.hWnd = hwnd; nid.uID = IDI_SSLAUNCH; Shell_NotifyIcon(NIM_DELETE, &nid); } c.应用程序定义回调消息的接收 若为任务栏通知区指定了回调消息,则系统会于鼠标事件在此区域发生时 向应用程序发送此消息,其中wParam是任务栏通知区图标标识,lParam 是鼠标事件发生后的鼠标信息。 void SSLaunch_OnIconNotify(WPARAM wParam, LPARAM lParam) { UINT uID = (UINT)wParam; UINT uMsg = (UINT)lParam; if(uID == IDI_SSLAUNCH){ switch(uMsg){ 编辑:iyit.net [发送给好友] [打印本页] [关闭窗口] [返回顶部] 上一篇:C#中如何插入照片到Excel 下一篇:没有了 转载请注明来源:www.iyit.net 特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。 |
| 相关文章 | ||||
| 设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接 |
| |||||||