MFC窗口去边框、置顶、全屏、激活
静态移除长提边框非常easy,直接设置“Border”属性为"none"就可以
"Maximize Box", “Minimize Box” 设置是否显示 最大化/最小化button。
“System Menu” 设置 是否显示 关闭button;
1. 代码中动态移除窗口边框的方法
DWORD dwStyle = GetStyle(); //等价于GetWindowLong(m_hWnd, GWL_STYLE);
DWORD dwNewStyle = WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_CLIPCHILDREN | WS_CLIPSIBLINGS;
dwNewStyle &= ~dwStyle;
SetWindowLong(m_hWnd, GWL_STYLE, dwNewStyle);
或者
LONG nStyle = GetWindowLong(m_hWnd, GWL_STYLE);
LONG newStyle = nStyle & (~(WS_CAPTION | WS_BORDER | WS_THICKFRAME)); //移除属性 WS_EX_CLIENTEDGE
SetWindowLong(m_hWnd, GWL_STYLE, newStyle);
::SetWindowPos(m_hWnd, NULL, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_FRAMECHANGED); //SWP_FRAMECHANGED确保马上生效
2. 设置窗口为最底层窗口的方法
SetWindowPos(&wndBottom, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE);
或者
::SetWindowPos(GetSafeHwnd(), HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE);
3. 设置窗口为最顶层窗口的办法
SetWindowPos(&wndTopMost, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE);
或者
::SetWindowPos(GetSafeHwnd(), HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE);
备注(1):
wndBottom和 wndTopMost为基类CWnd的静态成员,定义例如以下:
static AFX_DATA const CWnd wndTop; // SetWindowPos's pWndInsertAfter
static AFX_DATA const CWnd wndBottom; // SetWindowPos's pWndInsertAfter
static AFX_DATA const CWnd wndTopMost; // SetWindowPos pWndInsertAfter
static AFX_DATA const CWnd wndNoTopMost; // SetWindowPos pWndInsertAfter
备注(2):
SWP_DRAWFRAME 环绕窗体画一个框
SWP_FRAMECHANGED 发送一条WM_NCCALCSIZE消息进入窗体,即使窗体的大小没有发生改变.假设不指定这个參数,消息WM_NCCALCSIZE仅仅有在窗体大小发生改变时才发送
SWP_HIDEWINDOW 隐藏窗体
SWP_SHOWWINDOW 显示窗体
SWP_NOREDRAW 窗体不自己主动重画
<span style="color:#ff0000;">SWP_NOACTIVATE 不激活窗体(避免抢焦点)</span>
SWP_NOCOPYBITS 屏蔽客户区域
<span style="color:#ff0000;">SWP_NOMOVE 保持当前位置(X和Y參数将被忽略)
SWP_NOSIZE 保持当前大小(cx和cy參数会被忽略) </span>
<span style="color:#ff0000;">SWP_NOZORDER 保持窗体在列表的当前位置(hWndInsertAfter參数将被忽略)
SWP_NOOWNERZORDER 不改变全部窗体的位置和排列顺序 </span>
SWP_NOREPOSITION 与SWP_NOOWNERZORDER标记同样
SWP_NOSENDCHANGING 防止这个窗体接受WM_WINDOWPOSCHANGING消息
4. 设置窗口全屏显示
int cxScreen,cyScreen;
cxScreen=GetSystemMetrics(SM_CXSCREEN);
cyScreen=GetSystemMetrics(SM_CYSCREEN);
SetWindowPos(&wndTopMost,0,0,cxScreen,cyScreen,SWP_SHOWWINDOW);
MFC窗口去边框、置顶、全屏、激活的更多相关文章
- WPF无边框拖动、全屏、缩放
原文:WPF无边框拖动.全屏.缩放 版权声明:本文为博主原创文章,转载请注明出处. https://blog.csdn.net/lwwl12/article/details/78059361 先看效果 ...
- python tkinter窗口弹出置顶的方法
加上下面两句即可实现root窗口的置顶显示,可以用于某些程序的消息提示,能够弹出到桌面显示 root = Tk() root.wm_attributes('-topmost',1)
- ubuntu终端窗口最大化(不是全屏)
窗口最大化:ctrl+win窗+↑ 窗口还原:ctrl+win窗+↓ 这快捷键让人无语.好好的gnome被改造成unity,快捷键也改掉了.win窗+↑/↓为啥不用呢? 还有就是terminal的ta ...
- js控制网页窗口一打开就自动全屏
1.如果不需要开新窗口 在body区加入: <body onLoad= "javascript:window.resizeTo(screen.availWidth,screen.a ...
- win8.1系统下,点击一个窗口,【当前活动窗口】该窗口无法置顶
两个或多个窗口同时显示在桌面的时候,点击下一层的窗口,无法置顶显示,无论怎么点击,还是隐藏在原置顶窗口的后面,只能手动把原置顶窗口最小化后,才能看到.例如,A窗口现在置顶,B窗口在A的后面,露出来一部 ...
- QT 子窗口退出全屏
m_pWidget代表子窗口, 子窗口显示全屏: m_pWidget->setWindowFlags(Qt::Dialog); m_pWidget->showFullScreen(); 子 ...
- c# 调用浏览器打开网址并全屏
关键性参数 Google Chrome浏览器 Process process = Process.Start("chrome.exe", " --kiosk " ...
- js控制浏览器全屏
HTML 5中的full screen,目前可以在除IE和opera外的浏览器中使用 ,有的时候用来做全屏API,游戏呀,等都很有用.先看常见的API element.requestFullScree ...
- [转] JavaScript控制浏览器全屏及各种浏览器全屏模式的方法、属性和事件
[From] http://www.jb51.net/article/76695.htm HTML 5中的full screen,目前可以在除IE和opera外的浏览器中使用 ,有的时候用来做全屏AP ...
随机推荐
- ES shrink ——一般是结合rollover一起使用的,一开始没有看懂官方shrink文档,当看了这个之后就明白了
rollover Elasticsearch 从 5.0 开始,为日志场景的用户提供了一个很不错的接口,叫 rollover.其作用是:当某个别名指向的实际索引过大的时候,自动将别名指向下一个实际索引 ...
- nyoj--102--次方求模(快速幂)
次方求模 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 求a的b次方对c取余的值 输入 第一行输入一个整数n表示测试数据的组数(n<100) 每组测试只有一行,其 ...
- 表格td内容过多时,td显示省略号,鼠标移入显示全部内容。
转自:https://blog.csdn.net/weixin_42193908/article/details/80405014 两种方式显示: 1.title方式显示: <!DOCTYPE ...
- 微阅读,不依赖playground,打包成H5版本--案例学习
微阅读,不依赖playground,打包成H5版本 https://github.com/vczero/weex-yy-h5
- IDEA中Lombok插件的安装与使用
背景 我们在开发过程中,通常都会定义大量的JavaBean,然后通过IDE去生成其属性的构造器.getter.setter.equals.hashcode.toString方法,当要对某个属性进行 ...
- The name ‘InitialzeComponent’ does not exist in the current context
在Visual Studio中创建Windows Store项目,在MainPage.xaml.cs中出现错误: The name 'InitialzeComponent' does not exis ...
- 全栈框架——MEAN
MEAN: MongoDB - Express - AngularJs - Node.js MongoDB 是一个面向文档的. NoSQL 类型的数据库.MongoDB 颠覆了传统的基于表的数据存储方 ...
- CSS3实现1前端常用Loading效果
此页动画效果都是gif图的,不想用代码写的话,下载图片就可使用. 第1种效果: 代码如下 <div class="loading"> <span></ ...
- javascript面向对象中继承实现的几种方式
1.原型链继承: function teacher(name){ this.name = name; } teacher.prototype.sayName = function(){ alert(t ...
- JsonPluginsUtil
package utils; import java.lang.reflect.Field;import java.text.SimpleDateFormat;import java.util.Arr ...