模態視窗建立時隱藏

2021-06-21 04:20:12 字數 811 閱讀 7872

模態視窗建立時隱藏

在做畢業設計的時候遇到乙個問題,我在vc中通過主介面產生乙個視窗(其實是乙個程序),由於一直需要該程序在整個生命週期中都存在,所以該視窗使用dlg.domodal()的方式來不消滅。但是我的目的是想讓它成為後台的程序,而不想它出現視窗介面。這時候下面的方法可以用了:

模態視窗一建立後就會顯示,就算設定ws_visible屬性或在oninitdialog加入showwindow(sw_hide)也沒有效果.

下面這種方法可以比較好的解決這一問題:

首先宣告兩個變數.

rect m_nrect;

long m_exstyle;

在oninitdialog事件中加入如下**用來儲存原來的視窗位置和擴充套件風格.

m_exstyle = getwindowlong(hwnd ,gwl_exstyle);

getwindowrect(hwnd ,&m_nrect);

核心**,修改視窗的擴充套件風格和視窗尺寸

到了這裡視窗已經能夠隱藏了,恢復的時候應該怎麼辦呢?

在想要顯示視窗的時候加入如下**即可:

setwindowlong(hwnd ,gwl_exstyle ,m_exstyle);                                    //恢復原來的視窗擴充套件風格和視窗位置

setwindowpos(hwnd ,null ,m_nrect.left,m_nrect.top ,m_nrect.right – m_nrect.left ,m_nrect.bottom – m_nrect.top, swp_nozorder  | swp_showwindow );

MFC建立非模態子視窗

在第乙個視窗中,建立第二個視窗,如下 include second.h 第二個視窗標頭檔案 void ctestdlg onbnclickedbutton6 如果想在第二個視窗中銷毀子視窗。方法如下 void seconddig postncdestroy void seconddig oncanc...

C 模態視窗和非模態視窗

c 視窗對話方塊一般分為兩種型別 模態型別 modal 與非模態型別 modeless 所謂模態對話方塊,就是指除非採取有效的關閉手段,使用者的滑鼠焦點或者輸入游標將一直停留在其上的對話方塊。非模態對話方塊則不會強制此種特性,使用者可以在當前對話方塊以及其他視窗間進行切換下例中的form1使用模態方...

關於模態視窗

一.1.模態視窗 開啟後不可以操作父親視窗var returnvalue window.showmodaldialog url,arguments,features 2.非模態視窗 開啟後可以操作父親視窗var returnvalue window.showmodelessdialog url,ar...