选择显示字体大小

在window右下角的添加图标


  我们在诸如金山词霸的软件中看到,应用程序在任务栏的右下角加上了一个图标,当用鼠标左击和右击该图标时,会出现不同的菜单,这种程序是怎么实现的呢?

  其实这是比较简单的,只要我们知道window的一些数据结构及相关的api函数就可以实现了。本人曾在vc及delphi中都实现过这种程序,以下我的一些心得,希望对大家有借鉴作用。

  在delphi中的实现:

  请new一个form并加入以下的代码:

  请new一个form 并加入以下的代码:

unit unit1;

interface

uses

windows, messages, sysutils, classes, graphics, controls, forms, dialogs,

shellapi;

const

wm_mynotify = wm_user + 1000 ;//消息

strnotifytip=hello;//提示

id_main = 100 ; // 定义图标的id

type

tform1 = class(tform)

procedure formcreate(sender: tobject);

procedure formdestroy(sender: tobject);

private

{ private declarations }

public

{ public declarations }

function addicon(hwnd : hwnd):boolean ;

function removeicon(hwnd:hwnd):boolean ;

procedure mynotify(var msg:tmessage);message wm_mynotify;

end;

var

form1: tform1;

implementation

{$r *.dfm}

procedure tform1.formcreate(sender: tobject);

begin

addicon(handle);

end;

//以下函数加入图标,可在程序初始化时加入。

function tform1.addicon(hwnd : hwnd):boolean ;

var

nid : notifyicondata ;

begin

nid.cbsize := sizeof(notifyicondata);

nid.wnd := hwnd;

nid.uid := id_main;

nid.uflags := nif_message or nif_icon or nif_tip;

nid.ucallbackmessage := wm_mynotify;

nid.hicon := loadicon(hinstance,mainicon);

strcopy(nid.sztip,strnotifytip);

addicon := shell_notifyicon(nim_add, @nid);

end ;

function tform1.removeicon(hwnd:hwnd):boolean ;

var

nid : notifyicondata;

begin

nid.cbsize := sizeof(notifyicondata);

nid.wnd := hwnd;

nid.uid := id_main;

nid.uflags := 0;

removeicon := shell_notifyicon(nim_delete, @nid);

end ;

procedure tform1.formdestroy(sender: tobject);

begin

removeicon(handle);

end;

procedure tform1.mynotify(var msg:tmessage);

begin

case msg.lparam of

wm_lbuttondown : begin

application.messagebox(left button click ,my notify,mb_ok);

end;

end;

end;

end.

你还可以改变图标。代码如下:

nid.cbsize := sizeof(notifyicondata);

nid.wnd := hwnd;

nid.uid := id_main;

nid.uflags := nif_message or nif_icon or nif_tip;

nid.ucallbackmessage := wm_traynotify;

nid.hicon := 你的图标。

strcopy(nid.sztip,strnotifytip);

shell_notifyicon(nim_modify, @nid);

  在vc里的实现也差不多。你几乎可以完全模仿以上的代码自己实现。


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons