複製鏈接
請複製以下鏈接發送給好友

ModifyStyle

鎖定
ModifyStyle,調用這個函數修改窗口的風格,此函數的厲害之處在於可以在窗口創建完成後修改窗口風格,雖然也有一些屬性改不了。
外文名
ModifyStyle
作    用
調用這個函數修改窗口的風格
領    域
程序設計
學    科
Visual C++

ModifyStyle函數原型

BOOL ModifyStyle
(
DWORD dwRemove,
DWORD dwAdd,
UINT nFlags=0
);

ModifyStyle參數含義

dwRemove 指定修改時要刪除的窗風格。
dwAdd 指定修改時將要增加的窗口風格。
nFlags 該參數將被傳給SetWindowPos,否則為0,如果SetWindowPos不被調用的話,一般該參數默認值
如果該函數成功調用返回一個非0值,否則返回0;
5.備註
如果nFlags不為0, ModifyStyle將調用Windows API 函數SetWindowPos並且結合nFlags和以下四個預先佈置好的標誌重畫該窗口。
SWP_NOSIZE 保持當前大小。
SWP_NOMOVE 保持當前位置.。
SWP_NOZORDER 保持當前的Z次序。
SWP_NOACTIVATE 不激活該窗口。
6.用法:
1、修改控件的原有屬性用 ModifyStyle(1,WS_DISABLED);(實際測試時只要是>=0的整形數就行)
2、改回來的話要用ModifyStyle(WS_DISABLED,1);(實際測試時只要是>=0的整形數就行)
如果把參數想像成布爾值的話就使用1這個整形數,要除去調控件的屬性就讓第一個參數dwRemove為真,修改回來就讓第二個參數dwAdd為真.
7.參考代碼:
void CMyView::OnInitialUpdate()
{
CView::OnInitialUpdate();
ModifyStyle(0, WS_CLIPCHILDREN);
}
………………………………………………………………………………………………………………………………
C++中一些實例
SetWindowText("abc"); //設置 窗口標題欄 abc
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 屬性
也就説,要添加或除去窗口的普通風格,可以使用ModifyStyle 方法來實現
設置或去除窗口的擴展風格,可以使用 ModifyStyleEx 方法。C++中注意大小寫。
以上實例摘自 2011版的 羊皮卷系列之 學通 Visual C++的24堂課。