1.在OnInitDialog中添加
WINDOWPLACEMENT wp;
wp.length=sizeof(WINDOWPLACEMENT);
wp.flags=WPF_RESTORETOMAXIMIZED;
wp.showCmd=SW_HIDE;
SetWindowPlacement(&wp);
ModifyStyleEx(WS_EX_APPWINDOW, WS_EX_TOOLWINDOW);
2.重寫OnWindowPosChanging函數
void CXXXDlg::OnWindowPosChanging(WINDOWPOS* lpwndpos)
{
if (lpwndpos->flags & SWP_SHOWWINDOW)
{
lpwndpos->flags &= ~SWP_SHOWWINDOW;
PostMessage(WM_WINDOWPOSCHANGING, 0, (LPARAM)lpwndpos);
ShowWindow(SW_HIDE);
}
else
CDialog::OnWindowPosChanging(lpwndpos);
}
3.重寫DefWindowProc函數
LRESULT CXXXDlg::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
if(message==133 )
ShowWindow(SW_HIDE);
return CDialog::DefWindowProc(message, wParam, lParam);
}
4.重寫OnShowWindow函數
void CXXXDlg::OnShowWindow(BOOL bShow, UINT nStatus)
{
if( GetStyle() & WS_VISIBLE )
{
CDialog::OnShowWindow(bShow, nStatus);
}
else
{
long Style = ::GetWindowLong(*this, GWL_STYLE);
::SetWindowLong(*this, GWL_STYLE, Style | WS_VISIBLE);
CDialog::OnShowWindow(SW_HIDE, nStatus);
}
}
另外,隱藏任務欄圖標,可修改窗口的擴展樣式
隱藏任務欄圖標:ModifyStyleEx(WS_EX_APPWINDOW, WS_EX_TOOLWINDOW);
顯示任務欄圖標:ModifyStyleEx(WS_EX_TOOLWINDOW, WS_EX_APPWINDOW);