MFC学习笔记之六————更改appwizard生成的窗口外观
2015-01-04 17:12
309 查看
MFC学习笔记之六————更改appwizard生成的窗口外观
要更改应用程序的窗口的外观,我们可以在两个时候更改,一是在应用程序窗口创建之前,二是在应用程序窗口创建之后进行更改。本文将两种方式记录下来。在窗口创建之前修改:
我们之前已经知道,在应用程序窗口创建之前会调用一个叫PreCreateWindow()的函数,要想在窗口创建之前修改程序窗口的外观跟大小,就应该在CMainFrame类(SDI程序)中的PreCreateWindow()函数中进行。
注意:我们修改cs.lpszName的值,在单文档程序的标题中不会体现出来,因为cs.Style默认窗口样式中含有FWS_ADDTOTITLE这种MFC特定的样式,需要将这个样式去掉我们的设置才能生效。如下:
在设计窗口类的时候设定的,我们可以在CMainFrame::PreCreateWindow编写自己的窗口类。(即定义一个WNDCLASS 对象,对其成员变量赋值,然后使用RegisterClass()函数将其注册,WNDCLASS对象将MENU设为NULL并不会影响MENU的创建,即MENU还会生成)。
但是,由于SDI中含有MainFrame跟一个View的两个窗口(View在Frame之上)。CMainFrame类中的PreCreateWindow()函数中不能修改光标和背景。要改变这些,只能在View类中PreCrateWindow()函数中实现。
综上我们知道:在View类中只能修改客户区含有的内容,在MainFrame中只能修改window(主窗口)含有的内容。
当然,有时候为了能够更改一个光标的指针,就要重写整个的WNDCLASS窗口类,这样不划算!有没有方便的方式呢?MFC中有AfxRegisterWndClass()这个全局函数(Afx开头的都是MFC中的全局函数)。原型如下:
在窗口创建之后修改:
在窗口创建之后利用SetWindowLong函数来改变窗口的外观,看看函数原型:
而在窗口建立后修改光标,背景等,我们可以使用一个类似的函数---SetClassLong(),看看原型
PS:AfxGetInstanceHandle()获取程序句柄
宏MAKEINTRESOUCE将一个int型资源转换成与资源管理函数兼容的资源类型——是一个宏!!!
记录下自己的所学,虽然浅薄!!!如果我是一只蜗牛,那就只能慢慢向上爬!
![](http://static.blog.csdn.net/xheditor/xheditor_emot/default/struggle.gif)
相关文章推荐
- MFC学习笔记之六————更改appwizard生成的窗口外观
- MFC学习笔记之六————更改appwizard生成的窗口外观
- 孙鑫vc++ 第九课 笔记 修改MFC AppWizard向导生成的框架程序的外观和大小
- MFC学习笔记之三————区分窗口类对象以及窗口&&四种获得DC方式绘图
- [每日一学]MFC学习笔记——线程中控制窗口内容
- MFC学习笔记.day01续-调试MessageBox,注册窗口,创建窗口,显示,更新,消息循环,回调函数
- C++学习笔记之QT/MFC生成二维码
- MFC学习笔记——如何使窗口最大化,但不遮盖任务栏
- 学习笔记--MFC在滚动条窗口如何使所图的图形不产生偏移
- MFC学习笔记.day02-创建窗口全过程,MFC执行顺序,BUTTON控件,对象与窗口关系
- VS2013MFC单文档工程学习笔记六 - 窗口的常用消息事件
- MFC学习笔记-进度条颜色更改
- MFC学习笔记之程序外观相关操作
- 学习笔记--MFC在滚动条窗口如何使所图的图形不产生偏移
- MFC学习笔记——线程中控制窗口内容 .
- VS2013MFC对话框工程学习笔记二 - 了结布局和一些基本的窗口组件
- 学习笔记之MFC修改默认窗口大小
- MFC学习笔记之窗口刷新的步骤
- VS 学习笔记-MFC Appwizard原理
- MFC学习笔记——多窗口之间的通信