最新范文 方案 计划 总结 报告 体会 事迹 讲话 倡议书 反思 制度 入党

程序最小化到托盘

日期:2020-12-19  类别:最新范文  编辑:一流范文网  【下载本文Word版

程序最小化到托盘 本文关键词:最小化,托盘,程序

程序最小化到托盘 本文简介:VC++6.0中实现将应用程序的图标加入到Windows的系统托盘中(就是为应用程序在桌面右下角添加一个图标,和QQ类似)有位老兄说我乱贴,可能这位老兄已经看得眼花缭乱了,Shell_NotifyIcon是一个WindowsSDK的一个函数,只要你在windows下编程,不管你是BCB、VC、VB,

程序最小化到托盘 本文内容:

VC++6.0中实现将应用程序的图标加入到Windows的系统托盘中(就是为应用程序在桌面右下角添加一个图标,和QQ类似)有位老兄说我乱贴,可能这位老兄已经看得眼花缭乱了,Shell_NotifyIcon

是一个Windows

SDK的一个函数,只要你在windows下编程,不管你是BCB、VC、VB,都可以调用它来实现托盘图标,只是调用方法不同罢了。

常常能见到一些优秀的软件在运行后会将其应用程序图标加入到系统托盘中。如果能将自己编写的应用程序的图标也加入到系统托盘中,将会使你的程序显得很有专业水准。其实这并不困难,与系统托盘通信的函数只有一个:

Shell_NotifyIcon

(UINT

message,NOTIFYICONDATA

首先看一下该函数的两个参数。

第一个参数message可以取以下值:NIM_ADD

向托盘中加入一个图标;

NIM_MODIFY

修改托盘中的图标;NIM_DELETE

从托盘中删除一个图标

第二个参数m_nid是NOTIFYICONDATA结构的一个引用。该结构的原型如下:

typedef

struct

_NOTIFYICONDATA

{

DWORD

cbSize;//

结构的大小,必须在程序中给出

HWND

hWnd;

//是你程序中将要接收托盘消息的窗口句柄

UINT

uID;

//

应用程序中定义的托盘图标ID,此参数用作标识

UINT

uFlags;//设置属性,低三位有意义,0--7,如下:

//第一位//#define

NIF_MESSAGE

0x1

//

uCallbackMessage参数有效

//第二位//#define

NIF_ICON

0x2

//

hIcon参数有效

//第三位//#define

NIF_TIP

0x4

//

szTip参数有效

UINT

uCallbackMessage;

//

自定义的消息ID值,一定不要与以有的消息ID相重。

HICON

hIcon;

//显示在系统托盘上的Icon的句柄,可以为系统的IDI_WINLOGO等

CHAR

szTip[64];

//

用于图标显示的提示字符串

}

NOTIFYICONDATA;

为了接收到来自托盘的通知消息你可以将uCallbackMessage设定为你所定义的消息ID值,同时设定NIF_MESSAGE标志。这样当用户在你的托盘图标上移动或按下鼠标时,Windows将发出消息:该消息的messageID是你在uCallbackMessage中定义的值;wParam是你定义的uID值;而lParam是鼠标事件(如WM_LBUTTONDOWN),这样你的应用程序就能响应该事件了。因此,为了将自己的应用程序加入到系统托盘中,首先得建立一处理托盘通知消息的窗口对象,然后将窗口对象与你自己的托盘通知消息联系起来并建立相应的托盘通知消息映射机制,以便你的窗口对象能处理相应的事件。可以看到结构体NOTIFYICONDATA中,其成员变量hWnd,uID,uFlags均用于在窗口对象与你自己的托盘通知消息之间建立联系,而成员变量uCallbackMessage则必须是对应于你的窗口对象的托盘通知消息ID值。

于是要完成的工作有:

(1)建立一处理托盘通知消息的窗口对象;

(2)建立一结构体NOTIFYICONDATA变量,并给变量的相应域赋值以在托盘通知消息与窗口对象之间建立联系;

(3)建立相应的托盘通知消息映射机制;

(4)调用Shell_NotifyIcon函数以在系统托盘中加入、修改或删除图标;

(5)当然别忘了在你的窗口对象中编写相应的事件响应函数。

NOTIFYICONDATA

NotifyIcon;

#define

WM_NC

(WM_USER+0x101)

//

实现

protected:

afx_msg

LRESULT

OnNotifyIcon(WPARAM

wParam,LPARAM

IParam);

BEGIN_MESSAGE_MAP(CDiningManageDlg,CDialog)

ON_MESSAGE(WM_NC,OnNotifyIcon)

END_MESSAGE_MAP()

LRESULT

CDiningManageDlg::OnNotifyIcon(WPARAM

wParam,LPARAM

IParam)

{

if

((IParam

==

WM_LBUTTONDOWN)

||

(IParam

==

WM_RBUTTONDOWN))

{

ModifyStyleEx(0,WS_EX_TOPMOST);

ShowWindow(SW_SHOW);

}

return

0;

}

NotifyIcon.cbSize=sizeof(NOTIFYICONDATA);

NotifyIcon.hIcon=AfxGetApp()->LoadIcon(IDI_ICON_Notify);//IDR_MAINFRAME

NotifyIcon.hWnd=m_hWnd;

lstrcpy(NotifyIcon.szTip,L“接口程序“);

NotifyIcon.uCallbackMessage

=

WM_NC;

NotifyIcon.uFlags=NIF_ICON

|

NIF_MESSAGE

|

NIF_TIP;

Shell_NotifyIcon(NIM_ADD,ShowWindow(SW_HIDE);

Shell_NotifyIcon(NIM_DELETE,

篇2:outlook最小化到托盘的方法

outlook最小化到托盘的方法 本文关键词:最小化,托盘,方法,outlook

outlook最小化到托盘的方法 本文简介:Outlook最小化到托盘2010-07-0209:54:36|分类:默认分类|标签:|字号大中小订阅Outlook最小化的时候,总是会在任务栏占据一个窗口位,关掉的话,又不能及时收到邮件,这是一个很麻烦的问题下面提供可以让outlook最小化后隐藏到任务栏右手托盘的方法首先新建一个文本文件,然后重

outlook最小化到托盘的方法 本文内容:

Outlook最小化到托盘

2010-07-02

09:54:36|

分类:

默认分类

|

标签:

|字号大中小

订阅

Outlook最小化的时候,总是会在任务栏占据一个窗口位,关掉的话,又不能及时收到邮件,这是一个很麻烦的问题

下面提供可以让outlook最小化后隐藏到任务栏右手托盘的方法

首先新建一个文本文件,然后重命名为“outlook.reg“(须先到文件夹选项中设置显示文件扩展名)

之后右击选择“编辑“,把下面的蓝色字体内容复制进去,之后保存,双击执行即可

Outlook2007使用

========================================================

Windows

Registry

Editor

Version

5.00

[HKEY_CURRENT_USER/Software/Microsoft/Office/12.0/Outlook/Preferences]

“MinToTray“=dword:00000001

Outlook2003使用

========================================================

Windows

Registry

Editor

Version

5.00

[HKEY_CURRENT_USER/Software/Microsoft/Office/11.0/Outlook/Preferences]

“MinToTray“=dword:00000001

OutlookXP使用

========================================================

Windows

Registry

Editor

Version

5.00

[HKEY_CURRENT_USER/Software/Microsoft/Office/10.0/Outlook/Preferences]

“MinToTray“=dword:00000001

    以上《程序最小化到托盘》范文由一流范文网精心整理,如果您觉得有用,请收藏及关注我们,或向其它人分享我们。转载请注明出处 »一流范文网»最新范文»程序最小化到托盘
‖大家正在看...
设为首页 - 加入收藏 - 关于范文吧 - 返回顶部 - 手机版
Copyright © 一流范文网 如对《程序最小化到托盘》有疑问请及时反馈。All Rights Reserved