静态移除长提边框非常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窗口去边框、置顶、全屏、激活的更多相关文章

  1. WPF无边框拖动、全屏、缩放

    原文:WPF无边框拖动.全屏.缩放 版权声明:本文为博主原创文章,转载请注明出处. https://blog.csdn.net/lwwl12/article/details/78059361 先看效果 ...

  2. python tkinter窗口弹出置顶的方法

    加上下面两句即可实现root窗口的置顶显示,可以用于某些程序的消息提示,能够弹出到桌面显示 root = Tk() root.wm_attributes('-topmost',1)

  3. ubuntu终端窗口最大化(不是全屏)

    窗口最大化:ctrl+win窗+↑ 窗口还原:ctrl+win窗+↓ 这快捷键让人无语.好好的gnome被改造成unity,快捷键也改掉了.win窗+↑/↓为啥不用呢? 还有就是terminal的ta ...

  4. js控制网页窗口一打开就自动全屏

    1.如果不需要开新窗口 在body区加入: <body   onLoad= "javascript:window.resizeTo(screen.availWidth,screen.a ...

  5. win8.1系统下,点击一个窗口,【当前活动窗口】该窗口无法置顶

    两个或多个窗口同时显示在桌面的时候,点击下一层的窗口,无法置顶显示,无论怎么点击,还是隐藏在原置顶窗口的后面,只能手动把原置顶窗口最小化后,才能看到.例如,A窗口现在置顶,B窗口在A的后面,露出来一部 ...

  6. QT 子窗口退出全屏

    m_pWidget代表子窗口, 子窗口显示全屏: m_pWidget->setWindowFlags(Qt::Dialog); m_pWidget->showFullScreen(); 子 ...

  7. c# 调用浏览器打开网址并全屏

    关键性参数 Google Chrome浏览器 Process process = Process.Start("chrome.exe", " --kiosk " ...

  8. js控制浏览器全屏

    HTML 5中的full screen,目前可以在除IE和opera外的浏览器中使用 ,有的时候用来做全屏API,游戏呀,等都很有用.先看常见的API element.requestFullScree ...

  9. [转] JavaScript控制浏览器全屏及各种浏览器全屏模式的方法、属性和事件

    [From] http://www.jb51.net/article/76695.htm HTML 5中的full screen,目前可以在除IE和opera外的浏览器中使用 ,有的时候用来做全屏AP ...

随机推荐

  1. 基本的Mysql语句

    操作文件夹(库) 增 create database db1 charset utf8; 查 # 查看当前创建的数据库 show create database db1; # 查看所有的数据库 sho ...

  2. First step in troubleshooting complex issues: Define and scope your issue properly

    最近在查调试相关资料的时候,无意看到Tess的一篇关于如何快速分析复合场景问题的博文,感觉很实用,Mark备忘. My 9 questions for a pretty thorough proble ...

  3. javascript一个作用域案例分析

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. css round corner div and transition

    看stackoverflow上的圆角标签挺好看,自己动手试了下,用的属性是border-radius(即边框圆角半径,用px):加上transition effect,代码如下: <!DOCTY ...

  5. 使用光盘作为yum源安装ifconfig等网络命令

    # mkdir -p /mnt/cdrom# 如果是光驱:mount -t iso9660 /dev/cdrom /mnt/cdrom/# 如果是ISO:mount -o loop /usr/loca ...

  6. 目标跟踪ObjectT综述介绍

    此文也很详细:http://blog.csdn.net/maochongsandai110/article/details/11530045 原文链接:http://blog.csdn.net/pp5 ...

  7. 使用boost.python进行混合开发

    使用boost.python进行混合开发 原文请参照官网和各方参考,本文有改动! 参考链接:http://blog.csdn.net/lanbing510/article/details/121979 ...

  8. 巧用Ajax的beforeSend提高用户体验

    jQuery是经常使用的一个开源js框架,其中的$.ajax请求中有一个beforeSend方法,用于在向服务器发送请求前执行一些动作. $.ajax({ beforeSend:function(){ ...

  9. 02--C编程细节整理(一)

    用C语言比较多,这篇是平时攒下的.有些内容在工作后可能会很常见,但是不用容易忘,所以就写篇博客吧. 1.        printf的用法 %*可以用来跳过字符,可以用于未知缩进.像下面一样. for ...

  10. 给 iOS 开发者的 RxSwift(一)

    RxSwift 或许我们都听说过,但或许只知道 RxSwift 这个单词,长篇大论关于 RxSwift 的介绍往往使读者迷失在各种概念当中,却不知如何让它大展伸手.或许我们可以换一种姿势,一些应用场景 ...