第九课——框架窗口

GGBeng GGBeng     2022-10-03     189

关键词:

一、关键点

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函数

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

 

 

 

 

scrapy学习第九课(代码片段)

python之Web应用框架Django学习第一课目标:搭建类似博客的简单页面实例:具体代码如下知识点:目标:搭建类似博客的简单页面实例:具体代码如下1、view.pyfromdjango.shortcutsimportrenderfromdjango.httpimportHttpResponsefrom... 查看详情

第九课:买卖点

http://www.52investing.com/jpkecheng/payRoom_31_109.html 查看详情

重学java基础第九课:软件和软件关系

  查看详情

重学java基础第九课:软件和软件关系

  查看详情

7.9-uc-第九课:线程管理

================第九课 线程管理================一、基本概念------------1.线程就是程序的执行路线,即进程内部的控制序列,  或者说是进程的子任务。2.线程,轻量级,不拥有自己独立的内存资源,  共享进程的代码... 查看详情

零基础学python第九课,列表元祖字典字符串

〝古人学问遗无力,少壮功夫老始成〞列表、元祖、字典、字符串,都是python中的数据格式,其实说白了,就是存储数据的格式,学好这些数据格式是学好这门语言的奠基石,所以大家千万不能松懈,每种数据格式都是有些许的... 查看详情

第二本书第九课

一.CSS3变形transform  1.平移:translate(x,y) translateX(x) translateY(y)      注意:如果想只向X轴平移那么可以translateX,如果想只向X轴平移那么可以translateY,X和Y不能共存。如果想向两个方向平移,那... 查看详情

scrapy学习第九课(代码片段)

python之Web应用框架Django学习第一课目标:搭建类似博客的简单页面实例:具体代码如下知识点:目标:搭建类似博客的简单页面实例:具体代码如下1、view.pyfromdjango.shortcutsimportrenderfromdjango.httpimportHttpResponsefrom... 查看详情

第九课聚集函数(代码片段)

9.1聚集函数1、avg()返回平均值函数,为了获得多个列的平均值,必须使用多个AVG()函数。AVG()函数忽略列值为NULL的行selectavg(prod_price),avg(prod_price*2)fromProductswherevend_id=‘DLL01‘2、count()函数注意:使用COUNT(*)对表中行的数目进行... 查看详情

第九课javascript语句运用实例

if...else语句1vara=12;2if(a>10){3alert("a的值大于10");4}else{5alert("a的值不大于10");6}if...else...if语句1vara=12;2if(a<10){3alert("a的值小于10");4}elseif(a==10){5alert("a的值等于10");6}else{7alert("a的值大于10");8}if嵌套 查看详情

第九课《标点上》

例句1:我们要善于夸奖别人。比如在年会上对同事说你的这个手饰和你的这个皮肤配合的特别好,使你看起来容光涣发。我们要善于夸奖别人。比如在年会上同事说你的这个手饰和你的这个皮肤配合的特别好,使你看起来容光... 查看详情

快学scala第九课(伴生对象和枚举)

Scala没有静态方法和静态字段,你可以用object这个语法结构来达到同样的目的。对象的构造器只有在第一次被使用时才调用。伴生对象apply方法:类和它的伴生对象可以互相访问私有特性,他们必须存在于同一个源文件。类中要... 查看详情

cv第九课不同网络的对比

1.ResNet+Inception有着最高的Accuracy2.VGG最占内存,最多的操作数3.GoogleNet最efficient,这里的效率怎么计算的?4.AlexNet最少的操作数,但内存大,accuracy低5.Resnet效率适中,accuracy最高 注:图中圆的面积代表所占内存大小,横坐标代... 查看详情

第九课计算器界面代码重构

一、重构的概念1、重构是以改善代码质量为目的代码重写(1)、使其软件的设计和架构更加合理(2)、提高软件的扩展性和维护性2、代码实现和代码重构的不同(1)、代码实现:按照设计编程实现,重在实现功能(2)、代码... 查看详情

python第九课类和对象(代码片段)

9.1类的定义以及创建对象类是对象的抽象,对象是类的具体。先有类才有对象,先对具体的事务进行分类,该事务才称为该分类的对象。类是由属性和行为组成,也就是变量和方法组成。#定义一个学生类classStudent... 查看详情

python第九课类和对象(代码片段)

9.1类的定义以及创建对象类是对象的抽象,对象是类的具体。先有类才有对象,先对具体的事务进行分类,该事务才称为该分类的对象。类是由属性和行为组成,也就是变量和方法组成。#定义一个学生类classStudent... 查看详情

第九课智能指针示例------狄泰软件学院

一、内存泄漏(臭名昭著的bug)(1)、动态申请堆空间,用完后不归还(2)、c++语言中没有垃圾回收机制(3)、指针无法控制所指向的堆空间生命周期(如局部指针生命周期结束了堆空间的生命周期还未结束)二、智能指针1... 查看详情

电脑小白学习第九课---看图软件之美图看看

windows下看图软件有很多,windows系统自带的也有看图软件,不过很难用。今天推荐大家使用美图看看软件,查看电脑图片。我们先下载这个软件,在百度搜索"美图看看",如下图所示,直接下载即可。然后双击刚下载的安装... 查看详情