响应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 }
效果如下:插入符会不断闪动
功不成,身已退