mfc建立隱藏對話方塊

2021-09-07 19:11:45 字數 518 閱讀 5107

通常有需求mfc主對話方塊建立乙個子對話方塊(彈出式的對話方塊),但是彈出對話方塊必須要隱藏起來,等需要顯示的時候才顯示。嘗試過在建立彈出對話方塊後呼叫showwindow(sw_hide);函式實現,但是介面始終會閃爍一下。網上找到的許多資料都說在子對話方塊的oninitdialog()函式中新增showwindow(sw_hide);函式,也有說在oninitdialog()函式中使用movewindow();函式將對話方塊移動到顯示屏的外面,但是最終效果都是不理想的, 會閃爍一下,下面提供一種解決辦法,親測有效:

實現子對話的wm_windowposchanging訊息,其函式體頭部afx_msg void onwindowposchanging(windowpos* lpwndpos);在函式體中去掉顯示屬性即可:lpwndpos->flags &= ~swp_showwindow;在後續要顯示對話時,加上顯示屬性即可:lpwndpos->flags &= swp_showwindow;

特別注意:在關閉對話方塊前,比如實現onok();函式前需要去掉視窗的顯示屬性,否則對話方塊無法關閉。

mfc對話方塊隱藏

有很多應用程式要求一起動就隱藏起來,這些程式多作為後台程式執行,希望不影響其他視窗,往往只在托盤區顯示乙個圖示。這些程式通常都是對話方塊程式,而對話方塊在初始化的過程上與sdi mdi的初始化是不同的,對話方塊只需要domodule或者是createdialog等等對話方塊函式呼叫一次便可,sdi ...

MFC 對話方塊 隱藏 關閉

1.隱藏當前對話方塊 showwindow this m hwnd,false 2.關閉當前對話方塊 首先在對話方塊訊息函式中新增 wm close訊息,然後在自己的類中,過載onclose 函式 關閉當前對話方塊語句為 關閉當前對話方塊 cdialog onclose 3.關閉主對話方塊 向主對話...

mfc 子對話方塊控制父對話方塊 MFC對話方塊構架程式

遺憾的是 從來沒有被堅定選擇過,就像是,他只是剛好需要,你只是剛好在。網易雲熱評 一 對話方塊架構分類 1 模式對話方塊,彈出來不能進行其他操作 2 無模式對話方塊,彈出來後可以進行其他操作 二 新建win32應用程式 模式對話方塊 1 建立 2 修改屬性 3 新增dialog資源 4 包含標頭檔案...