如何让窗口在用户按了Windows的“显示桌面”按钮,这个窗口不被隐藏(或最小化)? 在桌面上显示一个窗口。每次按Windows的“显示桌面”时总是被最小化,如何避免不被最小化?让窗口的显示效果看起来是总贴在桌面上? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 private void Form1_Resize(object sender, System.EventArgs e){ if(this.WindowState == FormWindowState.Minimized) { this.WindowState = FormWindowState.Normal; }} 看看这个代码,大概和2楼的意思差不多。但是不行的,如果去按本窗口的最小化按钮,的确会恢复的。但是如果按了Windows的“显示桌面”,还是一样地被最小化。BOOL CMainFrame::OnWndMsg( UINT message, WPARAM wParam, LPARAM lParam, LRESULT* pResult ){ //ignore the minimize message if( message == WM_SIZE && IsIconic() ) { ShowWindow(SW_RESTORE ); //ShowWindow(SW_SHOW ); }} 设置TopMost=True, 处理SC_MINIMIZE消息 下面是别人写的BCB的有效代码SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);然后再消息函数里处理if (Msg==WM_SHOWWINDOW && !(Msg.WParam && Msg.LParam==SW_PARENTCLOSING)){ Msg.Result = 0; return;} if(Msg==WM_ACTIVATEAPP && !Msg.WParam) SetWindowPos(Handle, HWND_TOP, 0,0, 0,0, SWP_NOMOVE|SWP_NOSIZE); 真不幸啊,我想要的程序是看起来“贴”在桌面上,有点象便条。是不能在最上面的,只能在最底层。实际上我的程序里面是有一句:SetWindowPos(Handle, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);怎么办啊,各位? 这样可不可以?弄一个高和宽都为0的topmpst窗口,这样它就不会被最小化,然后这个窗口管理并显示楼主要的便条 你看看桌面天气预报秀的方法,就是osd实现,嵌入到桌面 CWnd *m_desktop=FindWindowW(_T("Progman"),_T("Program Manager"));this->SetParent(m_desktop);这个方法已经在我的电脑上调试通过。VS.NET2005 MFC 多谢cfanwolf, 高人啊, 可以了! 求sql语句问题 如果从组件中导出tlb文件 关于CEdit的问题 高分求救,关于ACCESS数据库(ODBC)的弱问题。 保存文件的问题,在线等待 在基于对话框的应用程序中怎么存储数据 请问,哪里有完整的MFC下载 vector怎么用? 图象的问题不知道怎么解决 socket 如何支持https 看了安全焦点的"Windows 2003中HOOK ZwCreateProcessEx",不明白,哪位有较完整例程,谢谢!!! 璇烽棶濡備綍鐢╒C鍦╡xcel鏂囨。涓彃鍏ヨ秴绾ч摼鎺ワ紵
{
if(this.WindowState == FormWindowState.Minimized)
{
this.WindowState = FormWindowState.Normal;
}
}
看看这个代码,大概和2楼的意思差不多。但是不行的,如果去按本窗口的最小化按钮,的确会恢复的。但是如果按了Windows的“显示桌面”,还是一样地被最小化。BOOL CMainFrame::OnWndMsg(
UINT message,
WPARAM wParam,
LPARAM lParam,
LRESULT* pResult )
{
//ignore the minimize message if( message == WM_SIZE && IsIconic() )
{ ShowWindow(SW_RESTORE );
//ShowWindow(SW_SHOW );
}
}
SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);然后再消息函数里处理
if (Msg==WM_SHOWWINDOW && !(Msg.WParam && Msg.LParam==SW_PARENTCLOSING))
{
Msg.Result = 0; return;
}
if(Msg==WM_ACTIVATEAPP && !Msg.WParam)
SetWindowPos(Handle, HWND_TOP, 0,0, 0,0, SWP_NOMOVE|SWP_NOSIZE);
this->SetParent(m_desktop);
这个方法已经在我的电脑上调试通过。VS.NET2005 MFC