修改應用程式視窗的外觀

2021-06-20 11:56:24 字數 1514 閱讀 3014

如果希望在應用程式視窗建立之前修改它的外觀和大小,就應該在 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的...