去除windows自带的border
2011-03-02 11:44
106 查看
最近在做一个自建的非模态对话框,首先我在内存中申请了资源,然后建立了一个对话框,但这个对话框是windows默认格式的对话框,包括蓝色的标题栏,3d edge等边框,而我不想用这种形式,在网上搜了很久,终于找到一种可行的方法来消除它。
windows 的border有很多种,包括WS_BORDER, WS_THICKFRAME, WS_SIZEBOX等,仅用~(DS_MODALFRAME | WS_POPUP | WS_CAPTION);未必能去除所有的border; 当时我只是去除了WS_BORDER和WS_EX_CLIENTEDGE,WS_CAPTION,但是去除了标题栏以后,周围还是有白色的边框等,证明我们没有完全去年边框。
在下面的链接里我们需要用到SetWindowLong,并调用SetWindowPos这个函数来通知系统当前窗口风格已经修改。
直接
SetWindowLong(hWnd, GWL_STYLE, WS_POPUP);
SetWindowLong(hWnd, GWL_EXSTYLE,0);
SetWindowPos(hWnd, NULL, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED);
调用以上代码,经测试可以达到属性中border为none的效果。
http://topic.csdn.net/u/20070827/13/fd79bd7f-bddc-490f-a2ca-6082622d3e74.html
windows 的border有很多种,包括WS_BORDER, WS_THICKFRAME, WS_SIZEBOX等,仅用~(DS_MODALFRAME | WS_POPUP | WS_CAPTION);未必能去除所有的border; 当时我只是去除了WS_BORDER和WS_EX_CLIENTEDGE,WS_CAPTION,但是去除了标题栏以后,周围还是有白色的边框等,证明我们没有完全去年边框。
在下面的链接里我们需要用到SetWindowLong,并调用SetWindowPos这个函数来通知系统当前窗口风格已经修改。
直接
SetWindowLong(hWnd, GWL_STYLE, WS_POPUP);
SetWindowLong(hWnd, GWL_EXSTYLE,0);
SetWindowPos(hWnd, NULL, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED);
调用以上代码,经测试可以达到属性中border为none的效果。
http://topic.csdn.net/u/20070827/13/fd79bd7f-bddc-490f-a2ca-6082622d3e74.html
相关文章推荐
- 去除Windows自带的微软拼音法
- WINDOWS自带可以杀掉系统进程的命令
- 如何在windows系统自带命令查看硬件信息?
- windows 7共享文件夹上的小锁怎么去除
- 用Windows自带命令行彻底删除文件
- Windows: 使用Win7自带的远程协助功能
- windows自带的超级终端的使用。
- WINDOWS系统自带的系统还原功能使用说明
- windows下去除快捷方式桌面图标小箭头的方法(winxp/win7)
- 删除 Windows 10 自带的程序,如新闻、邮件等
- js 如何调用Windows自带的配色控件
- 如果windows自带的刻录功能没了怎么办
- Windows 2003 服务器开启自带的DNS服务后,开启大量UDP端口问题的原因和解决办法
- 【转】windows自带终止进程的超强命令
- 电脑小常识——使用windows自带的工具优化开机时间
- 去除(修改)Windows的系统启动画面
- 在windows自带的超级终端中,如何清屏?
- 卸载windows自带的msn
- WINDOWS系统中自带的IExpress实验
- Ping - Windows自带可执行命令