教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 高等教育 >

Visual C++第03章 MFC基本应用程序的建立(10)

来源:网络收集 时间:2025-09-14
导读: ?Add Function?Edit Code 直接显示View.cpp文件的: CMyView::OnChar(UINT nChar,UINT nRepCnt,UINT nFlags) { CMyDoc *pDoc=GetDocument(); //获取文档类首地址指针 ASSERT_VALID(pDoc); //测试指针 pDoc->str+=nC

?Add Function?Edit Code 直接显示View.cpp文件的: CMyView::OnChar(UINT nChar,UINT nRepCnt,UINT nFlags) {

CMyDoc *pDoc=GetDocument(); //获取文档类首地址指针 ASSERT_VALID(pDoc); //测试指针 pDoc->str+=nChar; //读取键击

Invalidate(); //重绘视图,强制绘图 }

(4)显示文本

Invalidate()函数通过调用OnDraw()函数,强制程序重绘视图,故在View.cpp里再找到:

CMyView::OnDraw(CDC *pDC) { -------

pDC?TextOut(20,20,pDoc->str); }

? pDoc->str+=nChar; 相当于pDoc->str=pDoc->str+nChar; ? Draw函数是视图显示函数 (5)将文本居中

CWnd派生出CView,再由CView派生出CCenteredView类,使文本居中。 可使用CWnd的GetWindowRect()对象方法得到客户区的尺寸。

CRect类用于容纳矩形的尺寸和大小,我们把CRect对象的指针传递到 GetWindowRect()来获得视图的尺寸。 在OnDraw()里 (接上面程序做)

CRect rect; // CRect类用于容纳矩形的尺寸和大小 GetWindowRect(&rect);

int x=rect.Width()/2; //确定中心坐标x,y int y=rect.Height()/2;

CSize size=pDC->GetTextExtent(pDoc->str);//查明显示的文本串尺寸。

//使用CDC类(设备环境类)的GetTextExtent()来决定文本串将显示在

//客户区的尺寸。CSize类有2个重要的成员,cx和cy用于保留文本串//的尺寸。

x-=size.cx/2; y-=size.cy/2;

pDC->TextOut(x,y,pDoc->str); }

? x,y表示窗口新的左上角坐标 ? cx,cy表示窗口新的宽度和高度 ? RECT结构:

typedef struct tayRECT

{ LONG left; //左上角x坐标 LONG top; //左上角y坐标 LONG right; //右下角x坐标 LONG bottom;//右下角y坐标

}RECT; //CRect类用于容纳矩形的尺寸和大小

? SIZE结构://窗口大小 typedef struct tagSIZE

{ int cx; //当一个函数返回时的x范围 int cy; //当一个函数返回时的y范围 }SIZE;

注意:如果要显示带颜色的字,你做如下工作:

在View.h的public里写:COLORREF m_pColor; //定义颜色变量 在View.cpp的构造函数里写:m_pColor=RGB(255,0,0); //红色 在上面的pDC-->TextOut(x,y,pDoc->str);的前面加:

pDC->SetTextColor(m_pColor); //即可显示红色的字体

前面介绍了读取键盘的键击的编程过程,但这里不能回车换行,你想要实现 回车换行功能,说也奇怪,反倒什麽也不做,只是在建单文档(双文档)应用程 序时,到第6步(最后一步)停住,在这个界面的最下方Base class处下拉,找 到CEditView置好,再点Finish,之后直接运行,你在窗口上敲字符等后按回车 就行了,还能自动出现滚动轴。 例:处理鼠标

该程序的主要工作: (1) 处理鼠标消息

(2) 创建并使用插入点符号

(3) 使用Windows TEXTMETRIC结构 (4) 将鼠标消息连接到代码

鼠标可能产生相当多的消息,如:

WM_LBUTTONDOWN左键按下发此消息 WM_MOUSEMOVE移动鼠标发此消息

Visual C++第03章 MFC基本应用程序的建立(10).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/608642.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)