如何用VC++ MFC 使程序最小化到托盘
展开全部
1、创建mfc工程(对话框)
2、在myApp.cpp中InitInstance()中修改如下:
CDialog* pd = new CDialog;
HICON hIcon = LoadIcon(IDR_MAINFRAME);
pd->Create(IDD_TEMP_DIALOG); //IDD_TEMP_DIALOG是一个不显示的对话框资源ID
pd->SetWindowText("QQ_Loginer");
pd->SetIcon(hIcon, TRUE);
CQQ_LoginerDlg dlg(pd);
m_pMainWnd = &dlg;
int nResponse = dlg.DoModal();
3、在myAppDlg.h中加入初始化变量和函数:
public:
void InitialNotifyIcon();
BOOL wndst;
NOTIFYICONDATA NotifyIcon;
protected:
afx_msg void OnNotifyIcon(WPARAM wParam,LPARAM IParam);
4、在myAppDlg.cpp中的OnInitDialog()加入如下代码:
wndst = FALSE;
InitialNotifyIcon();
加入函数:
void CmyAppDlg::OnNotifyIcon(WPARAM wParam, LPARAM IParam)
{
if (IParam == WM_LBUTTONUP)
{
if (wndst)
{
ShowWindow(SW_SHOW);
}
else
{
ShowWindow(SW_HIDE);
}
wndst = !wndst;
}
}
void CmyAppDlg::InitialNotifyIcon()
{
ShowWindow(SW_HIDE);
NotifyIcon.cbSize = sizeof(NOTIFYICONDATA);
NotifyIcon.hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
NotifyIcon.hWnd = m_hWnd;
lstrcpy(NotifyIcon.szTip, "QQ_Loginer");
NotifyIcon.uCallbackMessage = WM_NC;
NotifyIcon.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;
Shell_NotifyIcon(NIM_ADD, &NotifyIcon);
}
别忘记加入消息函数:
void CmyAppDlg::OnClose()
{
Shell_NotifyIcon(NIM_DELETE, &NotifyIcon);
exit(0);
CDialog::OnClose();
}
附:改变停留消息提示(淡黄色便签提示)的方法:
CString title;
title = "[Refresh rate: " + m_interval + "s]";
AfxGetMainWnd()->SetWindowText(title);
lstrcpy(NotifyIcon.szTip, title);
Shell_NotifyIcon(NIM_MODIFY, &NotifyIcon);
要源码的hi我,这里贴怕吞。
2、在myApp.cpp中InitInstance()中修改如下:
CDialog* pd = new CDialog;
HICON hIcon = LoadIcon(IDR_MAINFRAME);
pd->Create(IDD_TEMP_DIALOG); //IDD_TEMP_DIALOG是一个不显示的对话框资源ID
pd->SetWindowText("QQ_Loginer");
pd->SetIcon(hIcon, TRUE);
CQQ_LoginerDlg dlg(pd);
m_pMainWnd = &dlg;
int nResponse = dlg.DoModal();
3、在myAppDlg.h中加入初始化变量和函数:
public:
void InitialNotifyIcon();
BOOL wndst;
NOTIFYICONDATA NotifyIcon;
protected:
afx_msg void OnNotifyIcon(WPARAM wParam,LPARAM IParam);
4、在myAppDlg.cpp中的OnInitDialog()加入如下代码:
wndst = FALSE;
InitialNotifyIcon();
加入函数:
void CmyAppDlg::OnNotifyIcon(WPARAM wParam, LPARAM IParam)
{
if (IParam == WM_LBUTTONUP)
{
if (wndst)
{
ShowWindow(SW_SHOW);
}
else
{
ShowWindow(SW_HIDE);
}
wndst = !wndst;
}
}
void CmyAppDlg::InitialNotifyIcon()
{
ShowWindow(SW_HIDE);
NotifyIcon.cbSize = sizeof(NOTIFYICONDATA);
NotifyIcon.hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
NotifyIcon.hWnd = m_hWnd;
lstrcpy(NotifyIcon.szTip, "QQ_Loginer");
NotifyIcon.uCallbackMessage = WM_NC;
NotifyIcon.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;
Shell_NotifyIcon(NIM_ADD, &NotifyIcon);
}
别忘记加入消息函数:
void CmyAppDlg::OnClose()
{
Shell_NotifyIcon(NIM_DELETE, &NotifyIcon);
exit(0);
CDialog::OnClose();
}
附:改变停留消息提示(淡黄色便签提示)的方法:
CString title;
title = "[Refresh rate: " + m_interval + "s]";
AfxGetMainWnd()->SetWindowText(title);
lstrcpy(NotifyIcon.szTip, title);
Shell_NotifyIcon(NIM_MODIFY, &NotifyIcon);
要源码的hi我,这里贴怕吞。
AiPPT
2024-09-19 广告
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图...
点击进入详情页
本回答由AiPPT提供
展开全部
创建对话框工程;
在里面定义一个NOTIFYICONDATA类型的变量m_mid;
用Shell_NotifyIcon(NIC_ADD,&m_mid);
。。。
在里面定义一个NOTIFYICONDATA类型的变量m_mid;
用Shell_NotifyIcon(NIC_ADD,&m_mid);
。。。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.创建托盘。
2.调用ShowWindow(SW_HIDE)将窗体隐藏起来。
2.调用ShowWindow(SW_HIDE)将窗体隐藏起来。
追问
能具体点吗? 是控件吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询