您的位置:首页 > 其它

修改窗口的风格ModifyStyle

2013-09-27 17:33 225 查看
CWnd::ModifyStyle

1.作用:

调用这个函数修改窗口的风格,此函数的厉害之处在于可以在窗口创建完成后修改窗口风格,虽然也有一些属性改不了。

2.函数原型:

BOOL ModifyStyle

(

DWORD dwRemove,

DWORD dwAdd,

UINT nFlags=0

);

3.参数含义:

dwRemove 指定修改时要删除的窗风格。

dwAdd 指定修改时将要增加的窗口风格。

nFlags 该参数将被传给SetWindowPos,否则为0,如果SetWindowPos不被调用的话,一般该参数默认值

4.返回值:

如果该函数成功调用返回一个非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堂课。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: