您的位置:首页 > 编程语言

MFC文本编程

2012-07-23 11:20 162 查看
(一)插入符

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);
}




                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: