窗體創建之后,如何設置窗體的樣式呢?
一般情況下使用GetWindowLongW與SetWindowLongW即可實現窗體樣式的修改或者使用ModifyStyle。
關於MFC存在GetWindowLongW和GetWindowLongA使用哪一個,可以通過 IsWindowUnicode(this->m_hWnd)獲取是使用哪一類型,true則使用GetWindowLongW反之使用GetWindowLongA。
LONG style = ::GetWindowLongW(this->m_hWnd,GWL_STYLE);//獲取原窗體的樣式 style&=~(WS_CAPTION | DS_MODALFRAME|WS_EX_DLGMODALFRAME | WS_EX_WINDOWEDGE);//更改樣式 ::SetWindowLongW(this->,GWL_STYLE,style);//重新設置窗體樣式
ModifyStyle(userForm.m_hWnd,WS_CAPTION | DS_MODALFRAME|WS_EX_DLGMODALFRAME | WS_EX_WINDOWEDGE,0,0); //------------------------------------------------------------------------------// ModifyStyle(WS_CAPTION,0,0); //去除標題欄 ModifyStyle(0,WS_THICKFRAME,0); //添加 WS_THICKFRAME風格 ModifyStyle(0,WS_EX_TOOLWINDOW,0); //設置工具欄窗口風格 ModifyStyleEx(0,WS_EX_ACCEPTFILES,0); //設置Accept files 屬性
參數:
hWnd
nlndex
指定要獲得值的大於等於0的值的
偏移量。
有效值的范圍從0到額外
窗口內存空間的字節數一4例如,若指定了12位或多於12位的額外類
存儲空間,則應設為第三個32位整數的索引位8。要獲得任意其他值,指定下列值之一:
值 | 意義 |
---|---|
GWL_EXSTYLE
(-20)
|
獲得擴展窗口風格。 |
GWL_HINSTANCE
(-6)
|
獲得應用事例的句柄。 |
GWL_HWNDPARENT
(-8)
|
如果父窗口存在,獲得父窗口句柄。 |
GWL_ID
(-12)
|
獲得窗口標識。 |
GWL_STYLE
(-16)
|
獲得窗口風格。 |
GWL_USERDATA
(-21)
|
獲得與窗口有關的32位值。每一個窗口均有一個由創建該窗口的應用程序使用的32位值。 |
GWL_WNDPROC
(-4)
|
獲得窗口過程的地址,或代表窗口過程的地址的句柄。必須使用CallWindowProc函數調用窗口過程。 |
在hWnd
參數標識了一個對話框時也可用下列值:
值 | 意義 |
---|---|
DWL_DLGPROC
(4)
|
獲得對話框過程的地址,或一個代表對話框過程的地址的句柄。必須使用函數CallWindowProc來調用對話框過程。 |
DWL_MSGRESULT
(0)
|
獲得在對話框過程中一個消息處理的返回值。 |
DWL_USER
(8)
|
獲得應用程序私有的額外信息,例如一個句柄或指針。 |