(已读)第九篇 在窗体上写字.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第九章 在窗体上写字 从前面的例程中我们看到,要在视窗式的应用程序中显示文字可用静态文本、编辑框和弹出消息框等方法。另外的一种方法是直接在窗口面版上写字,用这种方法还可以自由设置字体、大小和颜色。在窗体上写字实际上是“画”字,需要先创建一个可以“画”的对象——CPaintDC对象。 本章要点 1 用CFont类和创建字体 2 如何在窗体上写字? 3 单选按钮组的用法 4 利用列表框进行选择 ?9.1 CFont类简介 要设置字体需要创建一个CFont类对象,然后利用它的CreateFont()函数来设置当前字体。CreateFont()有14个参数,下面我们用代码加注释的方法简要介绍,详情可查阅MSDN连机帮助文档,参看MFC库手册。 ??????? CFont myFont; ??????????? //创建一个字体对象 ??????? myFont.CreateFont( ?????????? 16, ????????????????? //1.字体高度。 ??????????? 0, ?????????????????? //2. =0 表示保持纵横比 ??????????? 0, 0, ??????????????? //3.4.角度 ??????????? 400, ???????????????? //5.线的宽度,400为正常 ? ??????????? FALSE, FALSE, 0, ???? //6.7.8.斜体,下划线,删除线(否) ??????????? ANSI_CHARSET, ??????? //9.字符集 ??????????? OUT_DEFAULT_PRECIS, ????? //10.精度 ??????????? CLIP_DEFAULT_PRECIS, ???? //11. ??????????? DEFAULT_QUALITY, ???????? //12.质量 ??????????? DEFAULT_PITCH|FF_SWISS, ? //13.强度和家族? ??????????? Arial ???????????????? //14.字体名称 ??????????? ); 这14个参数中第一个和最后一个最重要。第一个表示字体高度,它决定了字符的大小,数值16表示字符举行的高为16个点,字体大小与你在本文中看到的差不多。而第二个参数=0 表示保持纵横比,这就字体的宽度了。最后一个字体名称用字符串表示,你的机器上有些什么字体好用,你打开记事本程序就可以查到。 9.2 MyFont.exe程序的界面和功能 本例程我们设计一个应用程序可以不同大小和颜色的字体来显示用户任意输入的字符串。 图chap09-01 ? 当你在下面的编辑框中输入一行文字后,窗口内会同时显示两行文本。你可以用左边的单选按钮选择字体大小,文本大小会立即改变。你可以在左下角的列表框中选择文本的颜色,但要点击[设置]按钮后才生效。 输入文字后的界面如图02。 图chap09-02 ?9.3 设计MyFont程序的界面 ?按照图1和参考下列属性表设计界面。 控件 标题 ID 其它属性 编辑框 - IDC_DATA_EDIT 按钮 设置 IDC_SET_BUTTON 按钮 EXIT ID_EXIT_BUTTON Styles:默认按钮 组框 Size IDC_STATIC 单选按钮组 8,16,24... IDC_SIZE_RADIO0 IDC_SIZE_RADIO1 ... 列表框 - IDC_COLOR_LIST 选择方式=simple;Border选中 主对话框 MyFont IDD_MYFONT_DIALOG ?9.4 编写在窗体上写字的代码 ?给编辑框引进CString类的变量m_DataEdit。 为了在窗体上显示一行提示语,我们在OnPaint()函数中用默认字体来写字。 ??????? CPaintDC dc(this); //参看:《深入编程内幕——Visual+C++》第41页 ??????? UpdateData(TRUE); //Allow draw onto the panal ??????? dc.SetBkMode(TRANSPARENT); ??????? dc.TextOut(100,10,请输入一行文本,Input a text please.); 语句1创建一个绘画的设备环境变量(对象)dc。语句2用TRUE允许更新。语句3设置北京模式为透明的。语句4用函数TextOut()输出文字,起始位置在坐标(100,0)处,窗口的左上角为坐标原点(0,0)。 下面紧接着创建新字体并用编辑框的输入信息来画字,代码如下: ??????? dc.Text

文档评论(0)

xiaofei2001128 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档