现在的位置: 首页 > 综合 > 正文

对话框的隐藏

2013年11月22日 ⁄ 综合 ⁄ 共 1176字 ⁄ 字号 评论关闭

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);

抱歉!评论已关闭.