荔园在线
荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀
[回到开始]
[上一篇][下一篇]
发信人: oasis (期末拉,好好学习~~~), 信区: Visual
标 题: 如何在程序中控制和操纵 Windows 95 Task Bar?
发信站: BBS 荔园晨风站 (Tue Nov 30 22:11:20 1999), 站内信件
(一.基本概念)
Windows 95 Task Bar实际上是一个标准控制。控制和操纵它就是与它
用消息通信,这与其他的标准控制一样。
一. 下面是有关的结构与函数:
1.仅有的一个结构:
// (From SHELLAPI.H)
typedef struct _NOTIFYICONDATA
{
DWORD cbSize; // size of struct, you must set
HWND hWnd; // HWND sending notification,是你程序中
//将要接收Task Bar消息的窗口
UINT uID; // ID of icon (callback WPARAM)
//一个程序可以有多个Icon,此参数用作标识
//一般用Icon的资源ID
UINT uFlags; //低三位有意义,0--7,如下:
//第一位//#define NIF_MESSAGE 0x1 // uCallbackMessage参数有效
//第二位//#define NIF_ICON 0x2 // hIcon is valid参数有效
//第三位//#define NIF_TIP 0x4 // szTip is valid参数有效
UINT uCallbackMessage; // sent to your wndproc
//WM_USER+? 一定不要与以有的消息相重。
HICON hIcon; // handle of icon
//显示在TaskBar上的Icon的句柄,可以为系统的:IDI_HAND
CHAR szTip[64]; // Tooltip text
} NOTIFYICONDATA;
2.与Task Bar通信的函数只有一个:
Shell_NotifyIcon (UINT message, NOTIFYICONDATA &tnd);
message可以取以下值:
NIM_ADD Adds an icon to the taskbar notification area
NIM_MODIFY Modifies an icon in the taskbar notification area
NIM_DELETE Deletes an icon from the taskbar notification area
二.一般步骤
一般将NOTIFYICONDATA utd 的cbsize,hWnd,uID,
UFlags(一般为7,表示三个参数均有效),uCallbackMessage,hIcon,szTip.
然后调用:Shell_NotifyIcon (NIM_ADD,&utd);
若要实现Icon动画,则可以用不同的hIcon调用
Shell_NotifyIcon (NIM_MODIFY,&utd);
程序终止时调用:
Shell_NotifyIcon (NIM_DELETE,&utd);
三.程序如何响应Task Bar的通知
当用户在你的Icon上移动,点击,等等动作时,Task Bar会向你的程序
发送如下的消息:
messageID =uCallbackMessage
wParam=uID
lParam =mouse event (如:WM_LBUTTONDOWN)
你的程序当收到uCallbackMessage消息时,提取出uID和mouse event,
就可以执行相关的响应。
很简单啦。
利用上面的知识,就不难在C,VB,VC中实现。
下一节介绍如何用一个MFC实现CTrayIcon类,来抽象一些常用的操作,以
更方便的利用Task Bar。
--
☆ 来源:.BBS 荔园晨风站 bbs.szu.edu.cn.[FROM: bbs@202.116.46.37]
[回到开始]
[上一篇][下一篇]
荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店