zoukankan      html  css  js  c++  java
  • 第九课——框架窗口

    一、关键点

    1. 框架窗口分为两类:应用程序主框架窗口、文档窗口

    • 每个应用程序只能有一个主框架窗口
    • 对于单文档应用程序,主框架窗口就是文档窗口
    • 对于多文档应用程序,文档窗口是主框架窗口的子窗口

    二、框架窗口初始状态

    • 在InitInstance函数内的ShowWindow函数会按指定的参数(书上列出了相关参数)来显示窗口。
    • 初始状态!!我们没必要修改!

    三、窗口样式及设置

    1. 窗口样式

    • 两种形式:一般形式、扩展形式(框架窗口创建时不能直接设定其扩展样式)
    • 常见的样式有:WS_BORDER、WS_CAPTION、WS_MAXIMIZEBOX、FWS_ADDTOTITLE等。
    • 注:上面两种形式的窗口样式可在函数CWnd::Create或CWnd::CreateEx参数中指定。
    • 补:对于控件和对话框这样的窗口来说,其窗口样式可直接通过其属性对话框来设置。

    2. 样式设置

    ①通过MFC AppWizard(exe)来设置:创建过程中的步骤4点击“高级”按钮进入设置。

    在主窗口或文档窗口类的PreCreateWindow函数中修改CREATESTRUCT结构

    • 窗口创建之前,系统自动调用PreCreateWindow虚函数,主窗口和文档窗口类已自动重载了该虚函数。
    • 用户可在此函数中通过修改CREATESTRUCT结构来设置窗口绝大多数样式。

    ③调用CWnd类的成员函数ModifyStyle和ModifyStyleEx来更改窗口的样式

    • ModifyStyleEx可以更改窗口的扩展样式。
    • BOOL ModifyXXXX(DWORD dwRemove, DWORD dwAdd, UINT nFlags = 0);
    • 注:前两个分别指定要删除和增加的样式,第三个参数表示SetWindowPos的标志(0表示更改样式时不调用SetWindowPos函数)

    四、改变窗口大小和位置

    1. SetWindowPos函数

    • BOOL SetWindowPos(const CWnd *pWndInsertAfter, int x, int y, int cx, int cy, UINT nFlags);
    • 第一个参数(窗口对象指针)、x和y(新的左上角坐标)、nFlags(新的大小和位置方式)
    • 常用的nFlags值:SWP_NOSIZE、SWP_NOZORDER等。
    • 补:还可改变窗口在堆栈排列的次序(第一个参数决定)

    2. MoveWindow函数

    • 功能相同,却有限制(必须指定窗口的大小,即如果你要保持窗口大小时必须获取当前窗口的大小)

     

     

  • 相关阅读:
    锚点定位跳转的各种实现方法
    css 布局之定位 相对/绝对/成比例缩放
    闭包,jQuery插件的写法:图片预加载
    mui 常见的效果
    根据浏览器内核判断是web/iOS/android/ipad/iphone 来打开不同的网站或页面
    有字库API方法使用一二
    tab 切换实现方法
    在线图片上传、预览、裁切、放大、缩小之 cropbox.js 的应用
    html + css3 demo
    jsfiddle 使用教程
  • 原文地址:https://www.cnblogs.com/xzxl/p/7955676.html
Copyright © 2011-2022 走看看