如何在程序运行后就隐藏主窗口? 如何在程序运行后就隐藏主窗口?为什么在OnInitDialog()中用ShowWindow(SW_HIDE)不能将窗口隐藏?应该怎么隐藏?高手指点!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 请处理你的Dialog的WM_SHOWWINDOW函数或者你使用非模式对话框,而不要使用DoModal 不能放在OnInitDialog()因为还没有生成一个Dialog,怎么能hide呢??我找了很多办法,就是闪烁无法解决。 在XXXApp::InitInstance()中加上m_pMainWnd->ShowWindow(SW_MINIMIZE); m_pMainWnd->UpdateWindow(); 在XXXApp::InitInstance()中加上m_pMainWnd->ShowWindow(SW_MINIMIZE); m_pMainWnd->UpdateWindow(); 看好了类里面添加NOTIFYICONDATA m_tnid;OnInitDialog() m_tnid.cbSize=sizeof(NOTIFYICONDATA); m_tnid.hWnd=this->m_hWnd; m_tnid.uFlags=NIF_MESSAGE|NIF_ICON|NIF_TIP; m_tnid.uCallbackMessage=XGM_ICON_NOTIFY; CString szToolTip; szToolTip=_T("洋洲多媒体网络学校服务器"); _tcscpy(m_tnid.szTip, szToolTip); m_tnid.uID=IDR_MAINFRAME; m_hMainIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME); m_tnid.hIcon=m_hMainIcon; ::Shell_NotifyIcon(NIM_ADD,&m_tnid); if(m_hMainIcon)::DestroyIcon(m_hMainIcon); PostMessage(WM_SHOWWINDOW,(WPARAM)FALSE,(LPARAM)SW_OTHERUNZOOM);void CDialog::OnWindowPosChanging(WINDOWPOS FAR* lpwndpos) { static BOOL bFirstRun = TRUE; if(bFirstRun) { bFirstRun = FALSE; lpwndpos->flags = SWP_HIDEWINDOW; } CDialog::OnWindowPosChanging(lpwndpos);}BOOL CDialog::PreCreateWindow(CREATESTRUCT& cs) { cs.dwExStyle&=!WS_VISIBLE; return CDialog::PreCreateWindow(cs);} 可以这么考虑在InitInstance()中设定时器在ontimer里面ShowWindow(SW_HIDE)然后killtimer 最简单的方法是:将窗口移出显示区域,如用SetWindowPos(NULL, 0, 0, 0, 0, 0);当然,如果你日后要用还要设置回来。 ShowWindow(SW_HIDE);或SetWindowPos(NULL,0,0,0,0,0); oldworm(oldworm)和HKer_007(健康) 的方法SetWindowPos(NULL, 0, 0, 0, 0, 0)可行,然后可用SetWindowPlacement(....)恢复 用SetWindowPos(NULL, 0, 0, 0, 0, 0)隐藏窗口后,程序在任务栏上最小化了!请问究竟怎样隐藏? 那就不要创建(DoModal)它,权当它是一个一般类,只提供了一些方法。(因为,既然不要交互,创建窗口或它的子窗口有何用?) 标题说不清,进来瞅瞅吧。 MSChart使用的一个问题 ActiveX控件在vc下的使用问题 怎样把一个程序切换到后台运行,还要让它不知道这种转移? 关于模式对话框的一个问题! 噩梦:MFC 重载PreTranslateMessage 后运行程序点击右键时出现异常 ole能不能自己实现进程间通信 OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) 中的pContext为啥为味NULL? _gcvt函数以为初始化无关变量 怎样得到字符串数组的长度? StretchBit()问题,谁知道帮个忙~~
或者你使用非模式对话框,而不要使用DoModal
因为还没有生成一个Dialog,怎么能hide呢??我找了很多办法,就是闪烁无法解决。
加上
m_pMainWnd->ShowWindow(SW_MINIMIZE);
m_pMainWnd->UpdateWindow();
加上
m_pMainWnd->ShowWindow(SW_MINIMIZE);
m_pMainWnd->UpdateWindow();
类里面添加
NOTIFYICONDATA m_tnid;OnInitDialog()
m_tnid.cbSize=sizeof(NOTIFYICONDATA);
m_tnid.hWnd=this->m_hWnd;
m_tnid.uFlags=NIF_MESSAGE|NIF_ICON|NIF_TIP;
m_tnid.uCallbackMessage=XGM_ICON_NOTIFY; CString szToolTip;
szToolTip=_T("洋洲多媒体网络学校服务器");
_tcscpy(m_tnid.szTip, szToolTip);
m_tnid.uID=IDR_MAINFRAME;
m_hMainIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);
m_tnid.hIcon=m_hMainIcon;
::Shell_NotifyIcon(NIM_ADD,&m_tnid);
if(m_hMainIcon)::DestroyIcon(m_hMainIcon); PostMessage(WM_SHOWWINDOW,(WPARAM)FALSE,(LPARAM)SW_OTHERUNZOOM);void CDialog::OnWindowPosChanging(WINDOWPOS FAR* lpwndpos)
{
static BOOL bFirstRun = TRUE;
if(bFirstRun)
{
bFirstRun = FALSE;
lpwndpos->flags = SWP_HIDEWINDOW;
}
CDialog::OnWindowPosChanging(lpwndpos);
}BOOL CDialog::PreCreateWindow(CREATESTRUCT& cs)
{
cs.dwExStyle&=!WS_VISIBLE;
return CDialog::PreCreateWindow(cs);
}
将窗口移出显示区域,如用
SetWindowPos(NULL, 0, 0, 0, 0, 0);
当然,如果你日后要用还要设置回来。
或
SetWindowPos(NULL,0,0,0,0,0);