MFC代码修改窗口属性
2016-06-16 17:50
991 查看
在创建窗口时属性页中的属性都是可以通过代码来动态设置的
主要用到两个函数
GetWindowLongPtr(__in HWND hWnd,//窗口句柄
__in int nIndex //要获取的类型
);
SetWindowLongPtr(
__in HWND hWnd, //窗口句柄
__in int nIndex, //要设置的类型
__in LONG dwNewLong//设置的值
);
或者
BOOL ModifyStyle
(
DWORD dwRemove,
DWORD dwAdd,
UINT nFlags=0
);
2.修改属性值
3.设置新的属性值
或者
ModifyStyle修改窗口属性
主要用到两个函数
GetWindowLongPtr(__in HWND hWnd,//窗口句柄
__in int nIndex //要获取的类型
);
SetWindowLongPtr(
__in HWND hWnd, //窗口句柄
__in int nIndex, //要设置的类型
__in LONG dwNewLong//设置的值
);
或者
BOOL ModifyStyle
(
DWORD dwRemove,
DWORD dwAdd,
UINT nFlags=0
);
基本步骤为:
1.取得窗口当前属性值2.修改属性值
3.设置新的属性值
或者
ModifyStyle修改窗口属性
代码示例:
//取得窗口当前属性值 LONG_PTR Style = ::GetWindowLongPtr(pMainDlg->m_hWnd,GWL_STYLE); //修改属性值(取消标题栏,取消系统按钮,取消边框) Style = Style &~WS_CAPTION &~WS_SYSMENU &~WS_SIZEBOX; //设置修改后的属性值 ::SetWindowLongPtr(pMainDlg->m_hWnd, GWL_STYLE, Style);
常见窗口属性值:
/* * Window Styles窗口属性 */ #define WS_OVERLAPPED 0x00000000L //重叠 #define WS_POPUP 0x80000000L //弹出式 #define WS_CHILD 0x40000000L //子类型 #define WS_MINIMIZE 0x20000000L //最小化状态 #define WS_VISIBLE 0x10000000L //可见 #define WS_DISABLED 0x08000000L //可用 #define WS_CLIPSIBLINGS 0x04000000L // #define WS_CLIPCHILDREN 0x02000000L // #define WS_MAXIMIZE 0x01000000L //最大化状态 #define WS_CAPTION 0x00C00000L /* WS_BORDER | WS_DLGFRAME */ #define WS_BORDER 0x00800000L //边框 #define WS_DLGFRAME 0x00400000L //边框类型 #define WS_VSCROLL 0x00200000L //垂直滚动条 #define WS_HSCROLL 0x00100000L //水平滚动条 #define WS_SYSMENU 0x00080000L //系统菜单 #define WS_THICKFRAME 0x00040000L //边框类型 #define WS_GROUP 0x00020000L // #define WS_TABSTOP 0x00010000L // #define WS_MINIMIZEBOX 0x00020000L //最小化按钮 #define WS_MAXIMIZEBOX 0x00010000L //最大化按钮 #define WS_TILED WS_OVERLAPPED / #define WS_ICONIC WS_MINIMIZE #define WS_SIZEBOX WS_THICKFRAME #define WS_TILEDWINDOW WS_OVERLAPPEDWINDOW /* * Common Window Styles 组合窗口属性 */ #define WS_OVERLAPPEDWINDOW (WS_OVERLAPPED | \ WS_CAPTION | \ WS_SYSMENU | \ WS_THICKFRAME | \ WS_MINIMIZEBOX | \ WS_MAXIMIZEBOX) //重叠窗口 #define WS_POPUPWINDOW (WS_POPUP | \ WS_BORDER | \ WS_SYSMENU) //弹出式窗口 #define WS_CHILDWINDOW (WS_CHILD) //子窗口 /* * Extended Window Styles 扩展的窗口属性 */ #define WS_EX_DLGMODALFRAME 0x00000001L // #define WS_EX_NOPARENTNOTIFY 0x00000004L // #define WS_EX_TOPMOST 0x00000008L // #define WS_EX_ACCEPTFILES 0x00000010L // #define WS_EX_TRANSPARENT 0x00000020L // #if(WINVER >= 0x0400) #define WS_EX_MDICHILD 0x00000040L // #define WS_EX_TOOLWINDOW 0x00000080L // #define WS_EX_WINDOWEDGE 0x00000100L // #define WS_EX_CLIENTEDGE 0x00000200L // #define WS_EX_CONTEXTHELP 0x00000400L // #endif /* WINVER >= 0x0400 */ #if(WINVER >= 0x0400) #define WS_EX_RIGHT 0x00001000L #define WS_EX_LEFT 0x00000000L #define WS_EX_RTLREADING 0x00002000L #define WS_EX_LTRREADING 0x00000000L #define WS_EX_LEFTSCROLLBAR 0x00004000L #define WS_EX_RIGHTSCROLLBAR 0x00000000L #define WS_EX_CONTROLPARENT 0x00010000L #define WS_EX_STATICEDGE 0x00020000L #define WS_EX_APPWINDOW 0x00040000L #define WS_EX_OVERLAPPEDWINDOW (WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE) #define WS_EX_PALETTEWINDOW (WS_EX_WINDOWEDGE | WS_EX_TOOLWINDOW | WS_EX_TOPMOST)
相关文章推荐
- 使用按钮控制以何种方式打开新窗口的属性介绍
- Windows 窗口类型
- GetClassLong()、SetClassLong()、SetWindowLong()、GetWindowLong()
- C++ 类之间的互相调用
- spring mvc 入门系列之一--HelloWorld(xml配置)
- Collection的toArray(T[] a) 方法
- 290. Word Pattern [easy] (Python)
- c++处理二进制
- VB中输入个人信息并保存成文档形式
- U3D结合第三方库ICSharpCode.SharpZipLib 实现文件夹打包解包
- 部署 Java web 工程
- Elastic Search安装及使用
- C# UDP收发请求工具类
- 求最大回文子字符串
- python格式化输出 学习学习
- 深度探索c++对象模型
- 华为C语言编程规范—程序效率
- 华为C语言编程规范—函数、过程
- 精准测试新玩法の基于犯罪心理学挖掘代码风险
- 分类算法 之 支持向量机--原理+案例+代码