插入符的创建(MFC)
int CDrawRectangleDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CDialog::OnCreate(lpCreateStruct) == -)
return -; // TODO: 在此添加您专用的创建代码 CreateSolidCaret(,);
ShowCaret();
return ;
}
OnCreate是一个消息响应函数,是响应WM_CREATE消息的一个函数,而WM_CREATE消息是由Create函数调用的。
在view类中,Create 是虚函数由框架调用,是用来“生成一个窗口的子窗口”。而OnCreate 函数是用来“表示一个窗口正在生成”。
一个窗口创建(Create)之后,会向操作系统发送WM_CREATE消息,OnCreate()函数主要是用来响应此消息的。因为在MFC里面用一种消息映射的机制来响应消息,也就是可以用函数来响应相应的消息。就拿CMainFrame类来说,当窗口创建后会产生WM_CREATE消息,我们可以在OnCreate函数里实现我们要在窗口里面增加的东西,例如按扭,状态栏,工具栏等。这些子窗口一般是定义成类中的一个成员变量,因为要保证生命周期。一般以m_开头来表示成员(member)。
OnCreate()不产生窗口,只是在窗口显示前设置窗口的属性如风格、位置等,Create()负责注册并产生窗口
Create()不是对应于消息WM_CREATE的,OnCreate()才是。Create()只用于产生窗口,像动态创建控件中的Create()一样。
WM_CREATE是windows中一个窗口消息。
当一个应用程序创建窗口时,会通过消息处理函数。但是这个消息在CreateWindow函数返回之前被送到消息处理函数。
例如,当要获取系统的字体时,我们可以先向这个窗口发送 WM_CREATE消息,以后字体不会改变了,程序会保存这个系统字体的消息!以后就可以用这个字体了!
WM_CREATE返回值
类型为LRESULT
如果一个程序处理这个消息,它应当返回0以使得窗口的创建过程得以继续。如果对于这个消息程序返回-1,窗口将会被销毁,并且CreateWindowEx或者CreateWindow函数将会返回一个值为NULL的句柄。
CreateSolidCaret()函数
void CreateSolidCaret(int nWidth,int nHeight);
nWidth 指定插入符的宽度(逻辑单位),如果该参数值为0,那么系统将其设置为系统定义的窗口边界的宽度
nHeight 指定插入符的高度(逻辑单位),如果该参数值为0,那么系统将其设置为系统定义的窗口边界的高度
CreateSolidCaret函数创建插入符以后,该插入符初始时是隐藏的,必须调用ShowCaret函数来显示它。
最新文章
- seajs和requirejs
- iOSapp的json告示
- Restful是什么,SOAP Webservice和RESTful Webservice
- HashMap遍历
- wx菜单栏
- android 中怎么控制checkbox中文本与左侧box的距离
- HDU 2370 Convert Kilometers to Miles
- 发现SQL Server惊天大秘密!!
- 京东口红top 30分析
- consul实现分布式锁
- Xshell 连接虚拟机出现 ";The remote SSH server rejected X11 forwarding request";
- 常用的Arrays类和二维数组以及二分法的介绍
- C - The kth great number 优先队列
- [APC001] D Forest
- 【Loadrunner】Loadrnner 参数化策略
- 一次 Java 内存泄漏排查过程,涨姿势
- 第四章 栈与队列(c1)栈应用:进制转换
- Liunx 硬盘分区
- 安装PYthon+Kivy环境(记录)
- Matplotlib风羽自定义
热门文章
- 【spring boot】注解@ApiParam @PathVariable @RequestParam三者区别
- 通过BSSID和无线流量传输后门Payload
- 步步为营(十六)搜索(二)BFS 广度优先搜索
- Android中怎样自己制作su
- IO模型:同步、异步、阻塞、非阻塞
- 走入asp.net mvc不归路:[4]说说Action有哪些常见成员
- C3P0连接池配置和实现详解(转)
- POJ--2284--That Nice Euler Circuit【平面图欧拉公式】
- 我为什么不喜欢 CoreData
- glib的安装(2)