1. 在dlg.cpp中宏定义一个消息号
#define WM_NC (WM_USER+1001)
2. 声明一个NOTIFYICONDATA变量并在OnInitDialog中初始化
// .h
1
public:
2
NOTIFYICONDATA m_notifyIcon; // 声明
// .cpp
2



1

2

3

4

5

6

7

3. 声明响应函数并注册
// .h
protected:
afx_msg LRESULT OnNotifyIcon(WPARAM wParam,LPARAM IParam); // 我的是vs2005。。如果用vc6的话可以把LRESULT改为void。。注意定义位置也要改。。
afx_msg LRESULT OnNotifyIcon(WPARAM wParam,LPARAM IParam); // 我的是vs2005。。如果用vc6的话可以把LRESULT改为void。。注意定义位置也要改。。
// .cpp
BEGIN_MESSAGE_MAP(CDesktopDlg, CDialog)
.
ON_MESSAGE(WM_NC,OnNotifyIcon) // 注册
END_MESSAGE_MAP()

ON_MESSAGE(WM_NC,OnNotifyIcon) // 注册
END_MESSAGE_MAP()
// .cpp


LRESULT CDesktopDlg::OnNotifyIcon(WPARAM wParam,LPARAM IParam)
{
// 这个方法体你随便写。。我只做个演示。。
if ((IParam == WM_LBUTTONDOWN) || (IParam == WM_RBUTTONDOWN))
{
ModifyStyleEx(0 , WS_EX_TOPMOST);
ShowWindow(SW_SHOW); // 显示dialog
Shell_NotifyIcon(NIM_DELETE, &m_notifyIcon); // 清除小图标
}
return 0;
}
ok。。下一步要实现最小化对话框时隐藏到托盘。。在下一步要给托盘加图标。。
任何疑问请联系:
leonkiros2004@163.com