2022年Delphi托盘编程实战演练Delphi教程.docx
-
资源ID:35439657
资源大小:12.64KB
全文页数:5页
- 资源格式: DOCX
下载积分:9.9金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
2022年Delphi托盘编程实战演练Delphi教程.docx
2022年Delphi托盘编程实战演练Delphi教程在Delphi中涉及到系统编程的方面毫无例外都要调用API函数,在ShellAPI.pas单元中有要用到的API函数的原型。实战演练:一新建一个应用程序:File->New Applicaton 在Interface部分定义一个消息常量:const WM_NID=WM_USER+1000; 系统规定从WM_USER起先为用户自定义消息。二定义一个全局变量: NotifyIcon:TNotifyIconData,NotifyIcon是特别重要的一个变量,整个程序基本上是围着这个变量在转。TNotifyIconData是一个记录类型,按住Ctrl键,在TNotifyIconData 双击即进入ShellAPI.pas单元。(注:在Delphi中,这是一个特别好的对源代码进行分析的方法,源代码说明一切,你要想知道程序背后的内幕,最好的方法就是分析源代码!)此时出现了以下赋值语句:TNotifyIconData = TNotifyIconDataA,这个意思很明显,就是说TNotifyIconData和TNotifyIconDataA是同种数据类型,接着往下看有:TNotifyIconDataA = _NOTIFYICONDATAA,意思与刚才的一样,再往下看:type_NOTIFYICONDATAA = recordcbSize: DWORD;Wnd: HWND;uID: UINT;uFlags: UINT;uCallbackMessage: UINT;hIcon: HICON;szTip: array 0.63 of AnsiChar;end;这可真是“千呼万唤始出来,犹抱琵琶半遮面”。现在大家很清晰了,我们刚才定义的全局变量NotifyIcon其实是一个包含有7个成分的记录类型变量,就相当于C/C+中的结构体变量(C/C+的程序员应当是再熟识不过了)。下面我们逐个来说明记录类型中的7个部分各有什么功能。1> cbSize就是你定义的NotifyIcon变量的大小,用SizeOf(TNotifyIconData)可以取得,假如你是一个娴熟的C/C+程序员,你应当不会生疏。在C/C+中,每当要为一个结构体变量安排内存的时候都要:通过 SizeOf(Struct type) 来获知存放一个这样的结构体变量要多少内存。2> Wnd是一个句柄,你希望托盘程序产生的消息有哪个窗体来处理就让Wnd指向那个窗体。例如:你打算在任务栏的托盘小图标上单击时窗体是窗体在“显示”和“隐藏”之间切换,则把Wnd指向主窗体。3> uID:假如你要创建多个托盘小程序,那么怎么区分它们呢?就是靠这个ID号来区分。4> uFlags是一个标记位,它表示当前所创建的托盘程序具有哪些性质:NIF_ICON 表示当前所设置的图标(即hIcon的值)是有效的NIF_MESSAGE 表示当前所设置的系统消息(即uCallBackMessage的值)是有效的NIF_TIP 表示当前所设置的提示条(即szTip的值)是有效的。5> uCallBackMessage这是7个部分里面最重要的一个。这里指定一个回调消息,也就是说这里定义一个消息名,当你单击或者右击托盘图标的时候就会向你在Wnd所指向的窗体发送一个在uCallBackMessage中定义的消息名,然后你在程序中定义一个消息出来函数来处理这个消息。这样就把Windows关于消息的整套流程都处理好了。6> hIcon为托盘图标的句柄,依据这个句柄你就可以增加、修改、删除图标。7> szTip就是当你的鼠标放到任务栏托盘的小图标上的时候弹出来的提示信息。在这里我花了大量的笔墨介绍TNotifyIconData的内幕,把这部分搞清晰了,后面的东西就顺理成章了。