国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
在MFC中隱藏對話框 - 風向標的日志 - 網(wǎng)易博客
由于基于dialog的mfc程序在啟動時要比sdi/mdi的詭異一點。。所以在OnInitDialog是我設置ShowWindow(SW_HIDE);無效。。google了一下。。發(fā)現(xiàn)可以用定時器解決。。目前也采用這個方法。。

1. 在OnInitDialog中setTimer;
    SetTimer(1 , 55 , NULL); // 第一個參數(shù)是id..等下onTimer要用到;
                                      // 第二個參數(shù)是間隔時間,單位毫秒。。;
2. 添加WM_TIMER消息宏;
    BEGIN_MESSAGE_MAP(CDesktopDlg, CDialog)
        ........
        ON_WM_TIMER()   // 其他的我拿掉了。。這個添加到這個位置。。
    END_MESSAGE_MAP()
3. 添加響應事件;
// .h
1
protected:
2
    
.
3
    afx_msg 
void OnTimer(UINT nIDEvent);   // 聲明

// .cpp

1
void CDesktopDlg::OnTimer(UINT nIDEvent)  
2
{
3
    
if (nIDEvent == 1)
4
    
{
5
        KillTimer(
1);    // 這個貌似應該有DeleteTimer之類的。。不過我沒找到。。
6
        ShowWindow(SW_HIDE);  // 隱掉它。。
7
    }

8
}

這里對話框還是會閃一下,然后就隱藏了。

第二種方法:

    第一步,聲明一個響應函數(shù)afx_msg void OnNcPaint();用于阻止繪制對話框操作。將這個函數(shù)放入Dlg類的聲明中,作為Dlg類的一個成員。

    第二步,注冊消息WM_NCPAINT(),也就是在BEGIN_MESSAGE_MAP(Dlg,CDialog)和END_MESSAGE_MAP()之間添加ON_WM_NCPAINT()。

    第三步,OnNcPaint函數(shù)代碼如下:
    void CMyDialog::OnNcPaint()
    {
        static int i = 2;
        if(i > 0)
        {

            i --;
            ShowWindow(SW_HIDE);
        }
        else
            CDialog::OnNcPaint();
    }

    OnNcPaint函數(shù)解釋:程序的需求是只要窗口在初始運行時隱藏,所以定義static int i = 2;
變量可以判斷是否是首次顯示窗口。之所以定義為2,是因為當程序開始運行時,系統(tǒng)發(fā)送(SendMessage)ON_WM_NCPAINT消息,此時程序的窗口邊框應該被顯示,但是此時我們沒有作任何顯示的操作,而是將窗口隱藏,ShowWindow(SW_HIDE)將把窗口的WS_VISIBLE屬性去掉,繼續(xù)執(zhí)行,程序?qū)z查WS_VISIBLE屬性,如果沒有則顯示窗口,所以又發(fā)送了一個ON_WM_NCPAINT消息。所以我們要處理兩次ON_WM_NCPAINT消息。其次,也可以定義static int i = 1;如果將i定義為1,則必須把窗口的Visible屬性去掉,也就是在窗口上右鍵點擊屬性,選擇More Styles,將Visible前面的勾去掉。

    有了以上三步就可以實現(xiàn)對話框隱藏,但在程序啟動的時候,系統(tǒng)狀態(tài)欄里會有程序的圖標閃一下,這就需要再做一些工作:

    第一,在OnInitDialog()函數(shù)中添加ModifyStyleEx(WS_EX_APPWINDOW, WS_EX_TOOLWINDOW);使對話框不在系統(tǒng)任務欄中顯示。

    第二,在需要對話框顯示的程序中添加ModifyStyleEx(WS_EX_TOOLWINDOW, WS_EX_APPWINDOW);使對話框顯示在系統(tǒng)任務欄中。

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
如何讓基于對話框的MFC程序啟動后自動隱藏對話框--==>肯肯編程小屋<==
啟動隱藏主窗口的方法1
VC++模態(tài)對話框和非模態(tài)對話框 | 求索閣
MFC 創(chuàng)建非模態(tài)對話框和銷毀過程
RedrawWindow(NULL, NULL, RDW
MFC?tab控件的使用?zz【轉(zhuǎn)】
更多類似文章 >>
生活服務
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服