MFC中插入符的生成

响应WM_CREATE消息的代码如下:

 1 int CTextView::OnCreate(LPCREATESTRUCT lpCreateStruct)

 2 {

 3     if (CView::OnCreate(lpCreateStruct) == -1)

 4         return -1;

 5 

 6     // 插入符在窗口重绘的过程中不会消失

 7     /** 创建文本插入符

 8     CClientDC dc( this );

 9     TEXTMETRIC tm;

10     dc.GetTextMetrics( &tm );        // 通过 TEXTMETRIC 结构体获取字体信息

11     CreateSolidCaret(tm.tmAveCharWidth/8, tm.tmHeight);        // 创建一个插入符,宽度为字体的平均宽度/8, 高度为字体高度,该方法是CWnd类拥有的

12     ShowCaret();                    // 默认情况下插入符是隐藏的,调用此函数显示插入符号

13     */

14 

15     // 创建位图插入符

16     m_Bitmap.LoadBitmapW( IDB_BITMAP2 ); 

17     // 这里的m_Bitmap要定义为成员变量,如果在这里定义,将不能显示出图像插入符,因为这里的位图变成了局部变量,此函数结束后位图变量会发生析构销毁,不能达到预期效果

18     CreateCaret( &m_Bitmap );

19     ShowCaret();

20     return 0;

21 }

效果如下:插入符会不断闪动

MFC中插入符的生成

 

 

你可能感兴趣的:(mfc)