MFC 对话框系统托盘详细步骤.docxVIP

  • 4
  • 0
  • 约3.8千字
  • 约 5页
  • 2024-04-30 发布于上海
  • 举报

PAGE

PAGE1

MFC中将窗口最小化至系统托盘

在对话框类中声明NOTIFYICONDATA变量

classCCamProjDlg:publicCDialog

{

...

NOTIFYICONDATAnid;

BOOLisNotify;

...

}

//初始化isNotify=false;

在resource.h文件中自定义消息

#defineWM_SHOWTASK 1001

在对话框类中声明消息相应函数

classCCamProjDlg:publicCDialog

{

...

afx_msgLRESULTonShowTask(WPARAMwParam,LPARAMlParam);

...

}

4、在消息映射中添加BEGIN_MESSAGE_MAP(CCamProjDlg,CDialog)

...ON_MESSAGE(WM_SHOWTASK,onShowTask)

...

END_MESSAGE_MAP()

定义消息响应函数

LRESULTCCamProjDlg::onShowTask(WPARAMwParam,LPARAMlParam)

{ //wParam接收的是图标的ID,而lParam接收的是鼠标的行为

if(wParam!=IDR_MAINFRAME)return1;

switch(lParam)

{

caseWM_RBUTTONUP: //右键起来时弹出快捷菜单,这里只有一个关闭

{

LPPOINTlpoint=newtagPOINT;

::GetCursorPos(lpoint); //得到鼠标位置

CMenumenu;

menu.CreatePopupMenu(); //声明一个弹出式菜单

menu.AppendMenu(MF_STRING,WM_DESTROY,_T(关闭)); //增加菜单项关闭,点击则发送消息WM_DESTROY给主窗口(已隐藏),将程序结束。

menu.TrackPopupMenu(TPM_LEFTALIGN,lpoint-x,lpoint-y,this); //确定弹出式菜单的位置

SetForegroundWindow();

HMENUhmenu=menu.Detach(); //资源回收

menu.DestroyMenu();deletelpoint;

}break;

caseWM_LBUTTONDBLCLK: //双击左键的处理

{

this-ShowWindow(SW_SHOW); //简单的显示主窗口完事儿

}break;

}

return0;

}

在需要最小化的地方添加代码

if(!isNotify)

{

nid.cbSize=(DWORD)sizeof(NOTIFYICONDATA);nid.hWnd=this-m_hWnd;

nid.uID=IDR_MAINFRAME;

nid.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP|NIF_INFO;

nid.uCallbackMessage=WM_SHOWTASK; //自定义的消息名称,注意:这里的消息是用户自定义消息

nid.hIcon =

LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME));wcscpy_s(nid.szTip,_T(提示标题));

wcscpy_s(nid.szInfo,_T(提示内容));

wcscpy_s(nid.szInfoTitle,_T(提示标题));nid.dwInfoFlags=NIIF_INFO;nid.uTimeout=5000;

Shell_NotifyIcon(NIM_ADD,nid); //在托盘区添加图标

}

ShowWindow(SW_HIDE);//隐藏主窗口

在OnDestroy()函数中添加代码

voidCCamProjDlg::OnDestroy()

{

CDialog::OnDestroy();

//TODO:AddyourmessagehandlercodehereShell_NotifyIcon(NIM_DELETE,nid);

}

1、在资源中的Icon中导入一个自己喜欢的图标,ID命名为IDR_MAINFRAME,将先前的IDR_MAINFRAME的图标删除掉;

2、在自己的Dialog头文件中定义一个变量 NOTIFYICONDATAm_nid,关于该结构体的具体信息可以查阅MSDN;

3、添加消息响应函数OnInitDialog

文档评论(0)

1亿VIP精品文档

相关文档