vc++的mfc怎么控制窗口的最大小最小化还原
比如在双击了托盘图标后就把窗口显示出来,怎么写?我的问题是窗口已经是最小化了,我是在最小化的时候隐藏的,想要把窗口还原并显示!...
比如在双击了托盘图标后就把窗口显示出来,怎么写?
我的问题是窗口已经是最小化了,我是在最小化的时候隐藏的,想要把窗口还原并显示! 展开
我的问题是窗口已经是最小化了,我是在最小化的时候隐藏的,想要把窗口还原并显示! 展开
展开全部
void CTIME_POWERDlg::ToTray()
{
nid.cbSize=(DWORD)sizeof(NOTIFYICONDATA);
nid.hWnd=this->m_hWnd;
nid.uID=IDR_MAINFRAME;
nid.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP ;
nid.uCallbackMessage=WM_SHOWTASK;//自定义的消息名称
nid.hIcon=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME));
StrCpy(nid.szTip,L"♀冰封星耀♂"); //信息提示条
Shell_NotifyIcon(NIM_ADD,&nid); //在托盘区添加图标
ShowWindow(SW_HIDE); //隐藏主窗口}
}
void CTIME_POWERDlg::DeleteTray()
{
//NOTIFYICONDATA nid;
nid.cbSize=(DWORD)sizeof(NOTIFYICONDATA);
nid.hWnd=this->m_hWnd;
nid.uID=IDR_MAINFRAME;
nid.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP ;
nid.uCallbackMessage=WM_SHOWTASK;//自定义的消息名称
nid.hIcon=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME));
StrCpy(nid.szTip,L"♀冰封星耀♂"); //在任务栏上显示名称,但是不能刷新,所以不能用于显示歌名
Shell_NotifyIcon(NIM_DELETE,&nid); //在托盘区删除图标
ShowWindow(SW_SHOWMAXIMIZED);//New Add Here
}
这是我以前给我播放器写的代码,有部分是从别人那里转载过来的,不过我已经使用了,肯定能用
第一个是隐藏倒系统栏,第二个是双击系统栏还原
-------------------------------------------------------
汗,我的第二个函数就是从任务栏还原啊,加个最大化
ShowWindow(SW_SHOWMAXIMIZED);这个函数就OK 啦
{
nid.cbSize=(DWORD)sizeof(NOTIFYICONDATA);
nid.hWnd=this->m_hWnd;
nid.uID=IDR_MAINFRAME;
nid.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP ;
nid.uCallbackMessage=WM_SHOWTASK;//自定义的消息名称
nid.hIcon=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME));
StrCpy(nid.szTip,L"♀冰封星耀♂"); //信息提示条
Shell_NotifyIcon(NIM_ADD,&nid); //在托盘区添加图标
ShowWindow(SW_HIDE); //隐藏主窗口}
}
void CTIME_POWERDlg::DeleteTray()
{
//NOTIFYICONDATA nid;
nid.cbSize=(DWORD)sizeof(NOTIFYICONDATA);
nid.hWnd=this->m_hWnd;
nid.uID=IDR_MAINFRAME;
nid.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP ;
nid.uCallbackMessage=WM_SHOWTASK;//自定义的消息名称
nid.hIcon=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME));
StrCpy(nid.szTip,L"♀冰封星耀♂"); //在任务栏上显示名称,但是不能刷新,所以不能用于显示歌名
Shell_NotifyIcon(NIM_DELETE,&nid); //在托盘区删除图标
ShowWindow(SW_SHOWMAXIMIZED);//New Add Here
}
这是我以前给我播放器写的代码,有部分是从别人那里转载过来的,不过我已经使用了,肯定能用
第一个是隐藏倒系统栏,第二个是双击系统栏还原
-------------------------------------------------------
汗,我的第二个函数就是从任务栏还原啊,加个最大化
ShowWindow(SW_SHOWMAXIMIZED);这个函数就OK 啦
展开全部
你既然建立了托盘,那么就会有托盘消息,就是nid.uCallbackMessage=WM_SHOWTASK;//自定义的消息名称
nid.hWnd=this->m_hWnd;这个就是接收托盘消息的窗口,
在这个窗口类里面响应这个托盘消息,这个托盘消息是自定义的,需自己添加消息映射。在这END_MESSAGE_MAP()之前添加ON_MESSAGE(UM_SHOWMND,WM_SHOWTASK);添加函数onshowtask(WPARAM wparam, LPARAM lparam)
这响应的函数
LRESULT onshowtask(WPARAM wparam, LPARAM lparam)
{if(wparam!=IDI_ICON1) return 0;//IDI_ICON1托盘图标nib.uID = IDI_ICON1
switch(lparam)
{case WM_LBUTTONDBLCLK:
{
ShowWindow(SW_SHOWDEFAULT);
或者ShowWindow(SW_SHOW);
UpdateWindow();
}break;
return 1;
}
case WM_LBUTTONDBLCLK这就是鼠标左键在托盘图标上双击后的响应;看你注册托盘时哪个窗口(nid.hWnd=this->m_hWnd)就在哪个窗口了添加LRESULT onshowtask(WPARAM wparam, LPARAM lparam)这个函数,这里告诉了你响应消息的方法,举一反三其它消息也可以响应,如WM_RBUTTONUP右键在托盘图标上弹起。让窗口最大化最小化这些代码应该知道吧,不用讲了。
void CTIME_POWERDlg::DeleteTray()
{
//NOTIFYICONDATA nid;
nid.cbSize=(DWORD)sizeof(NOTIFYICONDATA);
nid.hWnd=this->m_hWnd;
nid.uID=IDR_MAINFRAME;
nid.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP ;
nid.uCallbackMessage=WM_SHOWTASK;//自定义的消息名称
nid.hIcon=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME));
StrCpy(nid.szTip,L"♀冰封星耀♂"); //在任务栏上显示名称,但是不能刷新,所以不能用于显示歌名
Shell_NotifyIcon(NIM_DELETE,&nid); //在托盘区删除图标
ShowWindow(SW_SHOWMAXIMIZED);//New Add Here
}
这个方法借鉴一下就可以把托盘删除了
nid.hWnd=this->m_hWnd;这个就是接收托盘消息的窗口,
在这个窗口类里面响应这个托盘消息,这个托盘消息是自定义的,需自己添加消息映射。在这END_MESSAGE_MAP()之前添加ON_MESSAGE(UM_SHOWMND,WM_SHOWTASK);添加函数onshowtask(WPARAM wparam, LPARAM lparam)
这响应的函数
LRESULT onshowtask(WPARAM wparam, LPARAM lparam)
{if(wparam!=IDI_ICON1) return 0;//IDI_ICON1托盘图标nib.uID = IDI_ICON1
switch(lparam)
{case WM_LBUTTONDBLCLK:
{
ShowWindow(SW_SHOWDEFAULT);
或者ShowWindow(SW_SHOW);
UpdateWindow();
}break;
return 1;
}
case WM_LBUTTONDBLCLK这就是鼠标左键在托盘图标上双击后的响应;看你注册托盘时哪个窗口(nid.hWnd=this->m_hWnd)就在哪个窗口了添加LRESULT onshowtask(WPARAM wparam, LPARAM lparam)这个函数,这里告诉了你响应消息的方法,举一反三其它消息也可以响应,如WM_RBUTTONUP右键在托盘图标上弹起。让窗口最大化最小化这些代码应该知道吧,不用讲了。
void CTIME_POWERDlg::DeleteTray()
{
//NOTIFYICONDATA nid;
nid.cbSize=(DWORD)sizeof(NOTIFYICONDATA);
nid.hWnd=this->m_hWnd;
nid.uID=IDR_MAINFRAME;
nid.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP ;
nid.uCallbackMessage=WM_SHOWTASK;//自定义的消息名称
nid.hIcon=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME));
StrCpy(nid.szTip,L"♀冰封星耀♂"); //在任务栏上显示名称,但是不能刷新,所以不能用于显示歌名
Shell_NotifyIcon(NIM_DELETE,&nid); //在托盘区删除图标
ShowWindow(SW_SHOWMAXIMIZED);//New Add Here
}
这个方法借鉴一下就可以把托盘删除了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
解决方法:
void CTIME_POWERDlg::ToTray()
{
nid.cbSize=(DWORD)sizeof(NOTIFYICONDATA);
nid.hWnd=this->m_hWnd;
nid.uID=IDR_MAINFRAME;
nid.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP ;
nid.uCallbackMessage=WM_SHOWTASK;//自定义的消息名称
nid.hIcon=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME));
09-03-19 | 添加评论
0
29735581
void CTIME_POWERDlg::ToTray()
{
nid.cbSize=(DWORD)sizeof(NOTIFYICONDATA);
nid.hWnd=this->m_hWnd;
nid.uID=IDR_MAINFRAME;
nid.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP ;
nid.uCallbackMessage=WM_SHOWTASK;//自定义的消息名称
nid.hIcon=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME));
StrCpy(nid.szTip,L"♀冰封星耀♂"); //信息提示条
Shell_NotifyIcon(NIM_ADD,&nid); //在托盘区添加图标
ShowWindow(SW_HIDE); //隐藏主窗口}
}
void CTIME_POWERDlg::DeleteTray()
{
//NOTIFYICONDATA nid;
nid.cbSize=(DWORD)sizeof(NOTIFYICONDATA);
nid.hWnd=this->m_hWnd;
nid.uID=IDR_MAINFRAME;
nid.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP ;
nid.uCallbackMessage=WM_SHOWTASK;//自定义的消息名称
nid.hIcon=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME));
StrCpy(nid.szTip,L"♀冰封星耀♂"); //在任务栏上显示名称,但是不能刷新,所以不能用于显示歌名
Shell_NotifyIcon(NIM_DELETE,&nid); //在托盘区删除图标
ShowWindow(SW_SHOWMAXIMIZED);//New Add Here
}
void CTIME_POWERDlg::ToTray()
{
nid.cbSize=(DWORD)sizeof(NOTIFYICONDATA);
nid.hWnd=this->m_hWnd;
nid.uID=IDR_MAINFRAME;
nid.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP ;
nid.uCallbackMessage=WM_SHOWTASK;//自定义的消息名称
nid.hIcon=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME));
09-03-19 | 添加评论
0
29735581
void CTIME_POWERDlg::ToTray()
{
nid.cbSize=(DWORD)sizeof(NOTIFYICONDATA);
nid.hWnd=this->m_hWnd;
nid.uID=IDR_MAINFRAME;
nid.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP ;
nid.uCallbackMessage=WM_SHOWTASK;//自定义的消息名称
nid.hIcon=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME));
StrCpy(nid.szTip,L"♀冰封星耀♂"); //信息提示条
Shell_NotifyIcon(NIM_ADD,&nid); //在托盘区添加图标
ShowWindow(SW_HIDE); //隐藏主窗口}
}
void CTIME_POWERDlg::DeleteTray()
{
//NOTIFYICONDATA nid;
nid.cbSize=(DWORD)sizeof(NOTIFYICONDATA);
nid.hWnd=this->m_hWnd;
nid.uID=IDR_MAINFRAME;
nid.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP ;
nid.uCallbackMessage=WM_SHOWTASK;//自定义的消息名称
nid.hIcon=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME));
StrCpy(nid.szTip,L"♀冰封星耀♂"); //在任务栏上显示名称,但是不能刷新,所以不能用于显示歌名
Shell_NotifyIcon(NIM_DELETE,&nid); //在托盘区删除图标
ShowWindow(SW_SHOWMAXIMIZED);//New Add Here
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
MFC源文件里面就有啊,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询