1,Tnotifyicondata 记录原体:
type
_NOTIFYICONDATAA = record
cbSize: DWORD cbSize就是你定义的NotifyIcon变量的大小,用SizeOf(TNotifyIconData)可以取得,
Wnd: HWND Wnd是一个句柄,你希望托盘程序产生的消息有哪个窗体来处理就让Wnd指向那个窗体.
uID: UINT uID:如果你要创建多个托盘小程序,那么怎么区分它们呢?就是靠这个ID号来区分。
uFlags: UINT uFlags是一个标志位,它表示当前所创建的托盘程序具有哪些性质.
NIF_ICON 表示当前所设置的图标(即hIcon的值)是有效的
NIF_MESSAGE 表示当前所设置的系统消息(即uCallBackMessage的值)是有效的
NIF_TIP 表示当前所设置的提示条(即szTip的值)是有效的
uCallbackMessage: UINTuCallBackMessage这是7个部分里面最重要的一个。这里指定一个回调消息,也就是说这里定义一个消息名,当你单击或者右击托盘图标的时候就会向你在Wnd所指向的窗体发送一个在uCallBackMessage中定义的消息名,然后你在程序中定义一个消息出来函数来处理这个消息。这样就把Windows关于消息的整套流程都处理好了。
hIcon: HICON hIcon为托盘图标的句柄,根据这个句柄你就可以增加、修改、删除图标。
szTip: array [0..63] of AnsiChar szTip就是当你的鼠标放到任务栏托盘的小图标上的时候d出来的提示信息。
end
2,ShowWindow
是一个API函数.函数功能:该函数设置指定窗口的显示状态。
参数:
nCmdShow:指定窗口如何显示。如果发送应用程序的程序提供了STARTUPINFO结构,则应用程序第一次调用ShowWindow时该参数被忽略。否则,在第一次调用ShowWindow函数时,该值应为在函数WinMain中nCmdShow参数。在随后的调用中,该参数可以为下列值之一:
SW_FORCEMINIMIZE:在WindowNT5.0中最小化窗口,即使拥有窗口的线程被挂起也会最小化。在从其他线程最小化窗口时才使用这个参数。
SW_HIDE:隐藏窗口并激活其他窗口。
SW_MAXIMIZE:最大化指定的窗口。
SW_MINIMIZE:最小化指定的窗口并且激活在Z序中的下一个顶层窗口。
SW_RESTORE:激活并显示窗口。如果窗口最小化或最大化,则系统将窗口恢复到原来的尺寸和位置。在恢复最小化窗口时,应用程序应该指定这个标志。
SW_SHOW:在窗口原来的位置以原来的尺寸激活和显示窗口。
SW_SHOWDEFAULT:依据在STARTUPINFO结构中指定的SW_FLAG标志设定显示状态,STARTUPINFO 结构是由启动应用程序的程序传递给CreateProcess函数的。
SW_SHOWMAXIMIZED:激活窗口并将其最大化。
SW_SHOWMINIMIZED:激活窗口并将其最小化。
SW_SHOWMINNOACTIVATE:窗口最小化,激活窗口仍然维持激活状态。
SW_SHOWNA:以窗口原来的状态显示窗口。激活窗口仍然维持激活状态。
SW_SHOWNOACTIVATE:以窗口最近一次的大小和状态显示窗口。激活窗口仍然维持激活状态。
SW_SHOWNOMAL:激活并显示一个窗口。如果窗口被最小化或最大化,系统将其恢复到原来的尺寸和大小。应用程序在第一次显示窗口的时候应该指定此标志
返回值:如果窗口以前可见,则返回值为非零。如果窗口以前被隐藏,则返回值为零。
3,Shell_NotifyIcon 系统托盘API函数
Shell_NotifyIcon(dwMessage: DWORDlpData: PNotifyIconData)
dwMessage:[输入参数] 说明要执行的动作。动作的可选值如下:
NIM_ADD 增加一个图标到托盘区
NIM_DELETE 从托盘区删除一个图标
NIM_MODIFY 修改图标
NIM_SETFOCUS 将焦点(Focus)返回托盘区。这个消息通常在托盘区图标完成了用户界面下的 *** 作后发出。比如一个托盘图标显示了一个快捷菜单,然后用户按下ESC键了 *** 作,这时使用NIM_SETFOCUS将焦点继续保 留在托盘区。该项仅在系统外壳与常用控制DLL( Shlwapi.dll与Comctl32.dll)5.0以上版本才可用
NIM_SETVERSION 指定使用特定版本的系统外壳与常用控制DLL。缺省值为0,表示使用Win95方式。该项在系统外壳与常用控制DLL 5.0以上版本才可用。
lpdata:[输入参数] 一个指向NOTIFYICONDATA结构的指针
返回值:成功时函数返回TRUE,否则FALSE。
回调消息上面记录体解释已经解释了.
句柄:HANDLE这是一个中文翻译很古怪的字,我刚开始时一直不知道它是什么东东。刚开始学时总想知道一个HANDLE代表一个什么对象,现在我不去理解它是某对象,而就是理解为访问某一个对象的入口,事实上HANDLE大多数时候是一个整数索引(标志该对象在 *** 作系统的某表中的位置,就好像一个数组的下标一样),Windows系统核心中主要是几张大表,这样一个整数索引就是标记目标在这个表中的位置,供 *** 作系统访问时查询用。偶而它的确是指向某对象的指针,有时它还携带一些额外辅助信息。
用 autoit 自带的窗口信息工具(AutoIt Window Info)来识别。 也可以使用内置函数 WinGetHandle() 来根据窗口标题或类或其他属性来获取窗口句柄。 参见帮助里的:Window Titles and Text (Advanced) 即,窗口匹配的高级模式。 相应地,获取控件欢迎分享,转载请注明来源:内存溢出
评论列表(0条)