使用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...