修改應用程式的視窗

2021-05-23 15:04:36 字數 1253 閱讀 2032

修改應用程式視窗的外觀

1 在視窗建立之前修改

我們應該在cmainframe類的precreatewindow成員函式之中進行。precreatewindow是乙個虛函式,我們要重寫他。

在precreatewindow函式中修改createstruct這個結構體的成員(結構定義了傳遞給應用程式的視窗過程的初始化引數),

這個方法是在視窗建立之前修改它的預設外觀

2 在視窗建立之後修改

利用setwindowlong函式(改變指定視窗的屬性.函式也將指定的乙個32位值設定在視窗的額外儲存空間的指定偏移位置。)

long setwindowlong(hwnd hwnd,int nlndex,long dwnewlong),第乙個引數是:視窗控制代碼 及間接給出的視窗所屬的類,

第二個引數是: nlndex:指定將設定的大於等於0的偏移值。有效值 的範圍 從0到額外類的儲存空間的位元組數-4:例如若指定了12位或多於12位的額外類儲存空間,則應設為第三個32位整數的索引位8。要設定其他任何值,可以指定下面值之一:

gwl_exstyle:設定乙個新的擴充套件風格 。gwl_style:設定乙個新的視窗風格。   gwl_wndproc:為視窗過程設定乙個新的位址 。gwl_id:設定乙個新的視窗識別符號。   gwl_hinstance:設定乙個新的應用程式 例項控制代碼。   gwl_userdata:設定與視窗 有關的32位值。每乙個視窗均有乙個由建立該視窗的應用程式使用的32位值。

第三個引數是:指定的替換值。

函式long getwindowlong(hwnd hwnd,int nindex)第乙個引數是想要獲得的視窗的控制代碼,第二個引數是指定要獲取的資訊型別

修改視窗的游標,圖示和背景

1 在視窗建立之前修改

對於視窗的型別和大小,是在建立視窗時設定的,而圖示,游標和背景是在設計視窗類時指定的。

我們不應該修改mfc底層的**,但我們可以重寫乙個視窗類,讓隨後的視窗呼叫我們編寫的視窗類。在cmainframe類的precreatewindow函式中編寫自己的視窗類函式

值得注意的是:應用程式包含兩個視窗:應用程式框架視窗和視類視窗,應用程式框架視窗包含了視類視窗,視類視窗覆蓋在應用程式框架視窗,在應用程式框架類中只能修改程式視窗的圖示,而如果想要改變應用程式視窗的背景和游標的話,只能在視類中實現。

事實上,重寫整個視窗類是十分麻煩的,我們可以呼叫全域性函式:afxregisterwndclass,用來設定視窗的型別,游標,背景和圖示

2 在視窗建立之後修改

呼叫setclasslong函式來實現

修改應用程式視窗的外觀

如果希望在應用程式視窗建立之前修改它的外觀和大小,就應該在 cmainframe 類的 precreatewindow 成員函式中進行。二 在cmainframe precreatewindow中 新增 cs.lpszname 我想把程式的標題改為 但是程式執行時,卻發現標題沒有改過來。其中,fws...

MFC修改應用程式視窗外觀

1.視窗建立之前修改 bool cmainframe precreatewindow createstruct cs 執行結果 2.視窗建立之後修改 int cmainframe oncreate lpcreatestruct lpcreatestruct 執行結果 3.字串資源idr mainfr...

qt應用程式主視窗

qmainwindow視窗可以包含選單欄 工具欄 狀態列 標題欄等,是最常見的視窗形式,可以作為gui程式的主視窗 1 設定選單 setmenubar方法 標頭檔案 qmenubar 2 設定工具欄 add 方法 標頭檔案 q 3 設定可停靠部件 adddockwidget qmainwindow的...