4.文本编程.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
4.文本编程

文本编程 武汉科锐 MFC中的字符串 C语言:后带’\0’的字符数组。 C++:标准库中的string对象。 MFC:类库中提供的CString类 CString类中提供了许多方便字符串操作的函数 WM_KEYDOWN, WM_KEYUP, WM_CHAR 当我们按下键盘时,会发出WM_KEYDOWN消息,当按键松开的时候会发出WM_KEYUP消息,而在消息循环中TranslateMessage(Msg);会在一对WM_KEYXXX中间加入一个WM_CHAR消息。 在客户区输出字符串 在View类中加入WM_CHAR的响应函数CClientDC dc(this); CString str; str. AppendFormat (“%c”, nChar ); dc.TextOut(0,0,str); 这时,只能打出一个字符,因为str是局部变量,将它改为成员变量: CString m_str; GDI对象:字体 CFont,含有系统默认的构造函数,在使用前请调用CreateFont, CreateFontIndirect, CreatePointFont, 或CreatePointFontIndirect 来创建字体。 CFont fn; fn.CreatePointFont(200,“仿宋);   dc.SelectObject(fn); 其中,CreatePointFont 是产生字体最简单的方法,它的第二个参数是字体的名字,具体你的系统中装了哪些字体,可以打开记事本,在其中的“格式”――“字体”中查到。 设置文字颜色: dc.SetTextColor(RGB(0,0,255));//设置文字颜色为红色 字符光标 CreateSolidCaret(100,100);//产生一个100象素*100象素大小的实心光标 ShowCaret();       //显示光标 调整光标的大小与字体相适应:    CClientDC dc(this); CFont fn; fn.CreatePointFont(200,楷体); dc.SetTextColor(RGB(0,0,255)); dc.SelectObject(fn); TEXTMETRIC tm;           dc.GetTextMetrics(tm); //得到DC中当前的字体信息 CreateSolidCaret(tm.tmAveCharWidth/8,tm.tmHeight); //根据当前的大小产生光标    ShowCaret();          //显示光标 位图光标 bmp.LoadBitmap(IDB_BITMAP1);  //bmp定义为成员变量, //IDB_BITMAP为事先在资源面板中做好的位图的ID CreateCaret(bmp);       //产生位图光标 ShowCaret();          //显示光标 调整光标位置,在OnChar 中加入:   CPoint pt(tm.tmAveCharWidth*m_strInput.GetLength(),0);      //用平均字符宽度*字符个数来得到字符串长度 SetCaretPos(pt);        //设置光标位置 这种方法对于有些字体可以,有些字体不可以,会发生光标不在字符末尾的现象,因为在有些字体中,字符宽度并不一样,如W很宽,l很窄。 上段代码改为: CSize sz=dc.GetTextExtent(m_strInput); //得到字符串的大小 CPoint pt(sz.cx,0) ;         //用得到的字符串的长度设置 SetCaretPos(pt);            //光标位置 回车键的处理 定义成员变量,用于记录字符串的输出位置。 CPoint m_ptOrigin; //一定要在构造函数中赋初值 在OnChar中加入代码:   if(\15==nChar)            //如果输入的是回车键 { m_ptOrigin.x =0; m_ptOrigin.y += tm.tmHeight;    //将输出字符串的位置加一行 m_strInput.Empty();         //清空字符串 } else m_strInput += nChar; CSize sz=dc.GetTextExtent(m_strInput); CPoint pt(sz.cx,m_ptOrigin.y); SetCaretPos(pt); dc.TextOut(m_ptOrigin.x ,m_ptOrig

文档评论(0)

xy88118 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档