MFC中更改視窗樣式

2021-09-30 10:47:11 字數 1328 閱讀 8927

使用mfc生成多文件應用程式時,會自動生成cmainframe類和cchildframe類,要修改視窗的樣式,可以在cchildframe的precreatewindow方法中進行修改,如下:

bool cchildframe::precreatewindow(createstruct& cs)

是通過指定createstruct結構體中的style屬性來修改的。

msdn中createstruct結構體的定義如下:

createstruct結構體定義了傳遞給應用程式視窗過程的一些初始化引數,這些引數與 createwindowex 函式的引數是一樣的。

typedef struct tagcreatestruct

createstruct, *lpcreatestruct;

引數說明:

lpcreateparams

包含可能用於建立視窗的一些額外的資料。如果這個視窗是通過createwindow函式或者createwindowex函式呼叫建立的,這個引數包含特定函式呼叫中的 lpparam 屬性值。

如果正在建立的這個視窗是乙個多文件(mdi,mulitple-document inte***ce)客戶視窗,這個引數包含乙個指向 clientcreatestruct結構體的指標。如果正在建立的這個視窗是乙個多文件子視窗,這個引數包含乙個指向mdicreatestruct結構體的指標。

hinstance

擁有這個新窗的例項控制代碼。

hmenu

新視窗的選單控制代碼。

hwndparent

如果這個視窗是乙個子視窗,則這個引數表示父視窗的控制代碼。如果這個視窗是被擁有的,則這個引數表示擁有者的控制代碼。如果這個視窗既不是乙個子視窗也不是被擁有的視窗,則這個引數為null。

cy指定新視窗的高度,單位是畫素。

cx指定新視窗的寬度,單位是畫素。

y指定新視窗的左上角的y座標。如果這個新視窗是子視窗,座標值是相對于父視窗的。否則,這個座標值相對於螢幕的原點。

x指定新視窗的左上角的x座標。如果這個新視窗是子視窗,座標值是相對于父視窗的。否則,這個座標值相對於螢幕的原點。

style

指定新視窗的樣式,這些視窗樣式是微軟已經定義好了的。window中的視窗樣式這裡列舉了msdn中所有的窗體樣式。

lpszname

指向乙個表示新視窗名稱的非結束符的字串

lpszclass

乙個非結束符的字串或者表示新視窗類名的字串

dwexstyle

指定新視窗的一些擴充套件樣式

備註:如果要獲得視窗的類的名字,不要使用lpszclass,使用getclassname這個函式。

MFC 修改視窗樣式

之前說過,修改視窗大小,視窗樣式的方法。這裡說明一下修改視窗的圖示,游標和背景的方法。修改視窗大小,樣式是在建立視窗的時候進行的,而修改圖示,游標和背景是在設計視窗類的時候進行的。由於mfc封裝了相關操作。所以我們需要將自己寫的視窗類應用到mfc的框架中。1.通過視窗類進行修改 在bool cmai...

MFC中的視窗

mfc 視窗 mfc視窗不對視窗進行直接的控制,而在api環境中卻是可以的。如果不能在api環境中實現某項功能,那麼 肯定也不能在mfc環境中實現。舉例來說,mfc庫的cwnd可以建立乙個視窗,但它只是過去在api環境中使用 api呼叫的封裝。建立mfc視窗是複雜的,首先,建立類cwnd的乙個例項,...

MFC中靜態拆分視窗

一 範例執行結果 二 具體實現步驟步驟 1 建立2個視窗類cselectview和cdisplayview,到時候負責往上圖1和2的位置顯示東西。2 主視窗中定義乙個切分視窗類的物件,通過物件進行拆分 csplitterwnd m spliter 切分視窗類物件 3 重寫主視窗oncreatecli...