MFC文本编程
2012-07-23 11:20
162 查看
(一)插入符
1.创建插入符:用CWnd类的CreateSolidCaret()函数来实现,应该在窗口创建之后进行,可以再WM_CREATE消息响应函数OnCreate中添加创建插入符的代码,最后ShowCarer()
2.插入符的大小根据当前所选的字号来变化,CDC类的GetTextMetrics成员函数可以得到设备描述表中当前字体的度量。
3.代码如下:
3.创建图形插入符,CWnd类的CreateCaret()来实现,首先在视图类里创建一个成员变量:
private:
CBitmap bitmap;
然后在OnCreate()里添加以下代码:
1.窗口重绘时,应用程序框架代码会调用一个类似于WM_PAINT消息响应函数的OnDraw函数。
2.在程序窗口中输出一串文字的功能用TextOut()来实现。
3.MFC上,提供的一个字符串类CString,在利用CString操作字符串时,无论存储多少个字符,都不需要对它进行内存分配,因为这些操作在类的内部已经完成了。
4.在OnDraw函数里添加
(三)路径1.路径层(path bracket):利用其特点来实现特殊效果,如:在整幅图形中某一部分与其它部分有区别,就可以把这部分的图形放置到一个路径层中,然后利用SelectClipPath函数设置一种模式,让路径层裁剪区域进行互操作以达到一种特殊的效果。利用BeginPath和EndPath两个函数来实现路径层2.CDC类提供了一个GetTextExtent()来获得一个某个特定的字符串在屏幕上显示的宽度的高度3.代码如下:
1.创建插入符:用CWnd类的CreateSolidCaret()函数来实现,应该在窗口创建之后进行,可以再WM_CREATE消息响应函数OnCreate中添加创建插入符的代码,最后ShowCarer()
2.插入符的大小根据当前所选的字号来变化,CDC类的GetTextMetrics成员函数可以得到设备描述表中当前字体的度量。
3.代码如下:
int CSdfView::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CView::OnCreate(lpCreateStruct) == -1) return -1; // TODO: Add your specialized creation code here CClientDC dc(this); TEXTMETRIC tm; dc.GetTextMetrics(&tm); CreateSolidCaret(tm.tmAveCharWidth/8,tm.tmHeight); ShowCaret(); return 0; }
3.创建图形插入符,CWnd类的CreateCaret()来实现,首先在视图类里创建一个成员变量:
private:
CBitmap bitmap;
然后在OnCreate()里添加以下代码:
bitmap.LoadBitmap(IDB_BITMAP1); CreateCaret(&bitmap); ShowCaret();
1.窗口重绘时,应用程序框架代码会调用一个类似于WM_PAINT消息响应函数的OnDraw函数。
2.在程序窗口中输出一串文字的功能用TextOut()来实现。
3.MFC上,提供的一个字符串类CString,在利用CString操作字符串时,无论存储多少个字符,都不需要对它进行内存分配,因为这些操作在类的内部已经完成了。
4.在OnDraw函数里添加
CString str("VC编程"); pDC->TextOut(50,50,str);// 第一种方法 str.LoadString(IDS_STRINGVC);//第二种方法 创建字符串资源 pDC->TextOut(100,100,str);
(三)路径1.路径层(path bracket):利用其特点来实现特殊效果,如:在整幅图形中某一部分与其它部分有区别,就可以把这部分的图形放置到一个路径层中,然后利用SelectClipPath函数设置一种模式,让路径层裁剪区域进行互操作以达到一种特殊的效果。利用BeginPath和EndPath两个函数来实现路径层2.CDC类提供了一个GetTextExtent()来获得一个某个特定的字符串在屏幕上显示的宽度的高度3.代码如下:
CString str("VC编程"); pDC->TextOut(50,50,str);// 第一种方法 str.LoadString(IDS_STRINGVC);//第二种方法 创建字符串资源 pDC->TextOut(100,100,str); CSize sz=pDC->GetTextExtent(str); pDC->BeginPath(); pDC->Rectangle(50,50,50+sz.cx,50+sz.cy); pDC->EndPath(); pDC->SelectClipPath(RGN_DIFF); for(int i=0;i<300;i+=10) { pDC->MoveTo(0,i); pDC->LineTo(300,i); pDC->MoveTo(i,0); pDC->LineTo(i,300); }
相关文章推荐
- MFC(三)——文本编程
- VC++深入详解(3):MFC文本编程
- MFC 文本编程 -- 总结
- MFC(四)文本编程
- MFC学习笔记(三)——文本编程
- 以vs2010 MFC编程实现文本*.txt到二进制文件的转换
- MFC——4.文本编程
- MFC文本编程概述
- (转载)VS2010/MFC编程入门之四十七(字体和文本输出:CFont字体类)
- MFC学习lesson5--文本编程
- VS2010/MFC编程入门之四十八(字体和文本输出:文本输出)
- (转载)VS2010/MFC编程入门之四十八(字体和文本输出:文本输出)
- 孙鑫-MFC笔记四--文本编程
- MFC学习笔记 文本编程及相关函数
- MFC(文本编程,孙鑫C++第五讲笔记整理)
- MFC 文本编程1 --(未实现退格键,相同文字位置会发生覆盖)
- VS2010/MFC编程入门之四十七(字体和文本输出:CFont字体类)
- MFC编程学习之改变对话框和控件及文本颜色
- MFC界面编程2:优雅的纯文本按钮
- MFC文本编程