系统托盘程序很常见,最常用的杀毒软件几乎全是这样的。平时在其他程序运行时为了不干扰其他前台程序运行并不显示没用的窗口,只是在任务栏上显示一个程序图标表示该程序正在后台运行。有时候我们也需要编写这样的程序。
要完成这样的程序我们需要做一下3步:
1、设置主边框窗口风格和扩展风格。
:PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: 在此添加专用代码和/或调用基类
cs.style =WS_POPUP;//使主窗口不可见
cs.dwExStyle |=WS_EX_TOOLWINDOW;//不显示任务按钮
return CDialog::PreCreateWindow(cs);
}
2、将表示程序运行的图标加入任务栏。在OnCreate()中调用BOOL Shell_NotifyIcon(
要完成这样的程序我们需要做一下3步:
1、设置主边框窗口风格和扩展风格。
:PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: 在此添加专用代码和/或调用基类
cs.style =WS_POPUP;//使主窗口不可见
cs.dwExStyle |=WS_EX_TOOLWINDOW;//不显示任务按钮
return CDialog::PreCreateWindow(cs);
}
2、将表示程序运行的图标加入任务栏。在OnCreate()中调用BOOL Shell_NotifyIcon(
DWORD dwMessage,
PNOTIFYICONDATA lpdata
);第一个参数是预定义消息,可以取NIM_ADD、NIM_DELETE、NIM_MODIFY等消息;第二个参数指向NOTIFYICONDATA
的指针。原形如下:
struct NOTIFYICONDATA {
DWORD cbSize;
HWND hWnd;
UINT uID;
UINT u