zoukankan      html  css  js  c++  java
  • 插入符的创建(MFC)

     1 int CDrawRectangleDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)
     2 {
     3     if (CDialog::OnCreate(lpCreateStruct) == -1)
     4         return -1;
     5 
     6     // TODO:  在此添加您专用的创建代码
     7     
     8  CreateSolidCaret(1,30);
     9  ShowCaret();
    10     return 0;
    11 }

    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函数来显示它。

  • 相关阅读:
    uwsgi
    Angular.js中处理页面闪烁的方法详解
    Mongo db change datadir
    day 007作业
    day 007总结
    day 006作业
    day006 总结
    day 005作业
    day 005总结
    day 004作业
  • 原文地址:https://www.cnblogs.com/qiwu1314/p/8441251.html
Copyright © 2011-2022 走看看