如果希望在應用程式視窗建立之前修改它的外觀和大小,就應該在 cmainframe 類的 precreatewindow 成員函式中進行。
二、 在cmainframe::precreatewindow中 新增 cs.lpszname="***"; 我想把程式的標題改為***; 但是程式執行時,卻發現標題沒有改過來。
其中,fws_addtotitle 是mfc 特定的一種樣式,指示框架將文件標題新增到視窗標題上。
因此想讓視窗顯示自己設定的標題,只需要將視窗的某個型別的方法,就是對 fws_addtotitle 樣式去掉即可。
就是說再新增 這樣一條語句: cs.style&=~fws_addtotitle;
此外,還可以這樣。
該成員的初始定義** 是:
可以修改為:
三、 在視窗建立之後可以利用 setwindowlong 這個函式來實現這種功能。
要想獲得現有視窗的型別可以利用 getwindowlong 這個函式。
五、 在 mfc 程式中,如果想要修改應用程式視窗的圖示,則應在框架類中進行,因為在框架視窗中才有標題欄,所以才能修改位於該標題欄上的圖示;如果想要修改程式視窗的背景和游標,就應該在視類中進行。(這是因為應用程式包含有兩個視窗:應用程式框架視窗和視類視窗,前者包含後者,後者覆蓋在前者的上面)
六、mfc 為我們提供了乙個全域性函式 afxregisterwndclass ,用來設定視窗的型別、游標、背景和圖示。
舉例用法:
在 cmainframe類的precreatewindow 函式中新增這一句
cs.lpszname=afxregisterwndclass(cs_vredraw | cs_hredraw,0,0,
loadicon(null, idi_warning)); // 這裡的第
二、三個引數直接設定為0,因為在框架視窗中修改視窗類的游標和背景是毫無意義的。
如果想要修改 游標和背景剛在 在 視類的precreatewindow 函式中新增 例如:
cs.lpszname=afxregisterwndclass(cs_hredraw | cs_vredraw ,loadcursor(null,idc_cross),
(hbrush) getstockobject(black_brush),0); 即可
七、視窗建立完成之後,還能修改它的游標、圖示和背景嗎??
當然可以。可以利用全域性api 函式;setclasslong ,該函式用來重置指定視窗所屬視窗類的 wndxlas*** 結構體(是 wndclass 結構的擴充套件) 中指定資料成員的屬性。 這個函式和上面介紹的 setwindowlong 差不多。
MFC修改應用程式視窗外觀
1.視窗建立之前修改 bool cmainframe precreatewindow createstruct cs 執行結果 2.視窗建立之後修改 int cmainframe oncreate lpcreatestruct lpcreatestruct 執行結果 3.字串資源idr mainfr...
修改應用程式的視窗
修改應用程式視窗的外觀 1 在視窗建立之前修改 我們應該在cmainframe類的precreatewindow成員函式之中進行。precreatewindow是乙個虛函式,我們要重寫他。在precreatewindow函式中修改createstruct這個結構體的成員 結構定義了傳遞給應用程式的視...
qt應用程式主視窗
qmainwindow視窗可以包含選單欄 工具欄 狀態列 標題欄等,是最常見的視窗形式,可以作為gui程式的主視窗 1 設定選單 setmenubar方法 標頭檔案 qmenubar 2 設定工具欄 add 方法 標頭檔案 q 3 設定可停靠部件 adddockwidget qmainwindow的...