MFC 窗体样式修改
窗体创建之后,如何设置窗体的样式呢?
一般情况下使用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)
|
获得应用程序私有的额外信息,例如一个句柄或指针。 |
标签:
MFC
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义