托盘程序创建
来源:互联网 发布:raphael min.js 编辑:程序博客网 时间:2024/06/05 02:48
1。先定义一个NOTIFYICONDATA类型的变量
typedef struct _NOTIFYICONDATA
{
DWORD cbSize; //以字节为单位的这个结构的大小
HWND hWnd; //接收托盘图标通知消息的窗口句柄
UINT uID; //应用程序定义的该图标的ID号
UINT uFlags; //设置该图标的属性
UINT uCallbackMessage; //应用程序定义的消息ID号,此消息传递给hWnd
HICON hIcon; //图标的句柄
char szTip[64]; //鼠标停留在图标上显示的提示信息
} NOTIFYICONDATA, *PNOTIFYICONDATA;
该结构中,成员uFlags可以使下列之一或组合:
NIF_ICON 设置成员hIcon有效
NIF_MESSAGE 设置成员uCallbackMessage有效
NIF_TIP 设置成员szTip有效
uCallbackMessage定义了托盘程序发出的事件,(任何操作都会发出这个消息,如右键、左键等),只要响应这个消息即可。也可以重载
WindowProc对消息进行处理。可以自定义一个消息。然后响应这个消息即可。
2。用Shell_NotifyIcon() 添加即可
WINSHELLAPI BOOL WINAPI Shell_NotifyIcon( DWORD dwMessage, PNOTIFYICONDATA pnid);
---Pnid是NOTIFYICONDATA结构的指针; dwMessage是被传递的消息,可以是以下消息之一:
NIM_ADD 增加图标
NIM_DELETE 删除图标
NIM_MODIFY 修改图标
///添加托盘图标
void CDlgTest::OnButton7()
{
// TODO: Add your control notification handler code here
m_tnid.cbSize = sizeof(NOTIFYICONDATA);
m_tnid.hWnd = m_hWnd;
m_tnid.uFlags=NIF_MESSAGE|NIF_ICON|NIF_TIP;
m_tnid.uCallbackMessage=MYWM_NOTIFYICON;
CString szToolTip;
szToolTip=_T("托盘图标实例");
_tcscpy(m_tnid.szTip, szToolTip);
m_tnid.uID=IDR_MAINFRAME;
HICON hIcon;
hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
m_tnid.hIcon = hIcon;
::Shell_NotifyIcon(NIM_ADD, &m_tnid);
if(hIcon) ::DestroyIcon(hIcon);
AfxGetMainWnd()->ShowWindow(SW_HIDE);
}
//删除托盘图标
void CDlgTest::OnButton8()
{
// TODO: Add your control notification handler code here
::Shell_NotifyIcon(NIM_DELETE, &m_tnid);
}
//托盘响应函数
LRESULT CDlgTest::OnMyWm_Notifyicon(WPARAM wParam, LPARAM lParam)
{
if(lParam==WM_LBUTTONDBLCLK)
{
//AfxMessageBox("message send");
//AfxGetApp()->m_pMainWnd->ShowWindow(SW_SHOW);
AfxGetMainWnd()->ShowWindow(SW_SHOW);
}
else if(lParam==WM_RBUTTONDOWN)
{
CMenu m;
m.LoadMenu(IDR_MENU1);
CMenu *b = m.GetSubMenu(0);
CPoint cp;
::GetCursorPos(&cp);
b->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON, cp.x, cp.y, AfxGetMainWnd());
}
//AfxMessageBox("message send");
return 0;
}
很简单。。。。
- 托盘程序创建
- 创建系统栏托盘程序
- 创建系统栏托盘程序
- C# 托盘程序的创建
- 创建具有托盘的服务程序
- 托盘程序
- 托盘程序
- 托盘程序
- 托盘程序
- 程序托盘
- 托盘程序
- 托盘程序
- 创建具有托盘的服务程序的实例分析[转]
- delphi创建具有托盘的服务程序(service)
- delphi创建具有托盘的服务程序(service)
- VC创建托盘
- 托盘图标的创建
- 创建托盘图标
- 进程间通讯-共享内存
- 文件的合并与分割
- 枚举进程,枚举窗口
- VC++中进程间相互通信的十一种方法
- menu与toolbar
- 托盘程序创建
- hook-简要实现
- blog今天开通
- 定时器
- 多线程--同步(事件Event)
- 修改windows的登录界面
- 绘图-图像绘制相关
- 项目要开工了.
- 用C语言实现参数个数可变的函数