⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chap08.html

📁 利用软件开发
💻 HTML
📖 第 1 页 / 共 5 页
字号:
<P>CString str=pDoc-&gt;m_str;</P>
<P>LOGFONT lf=pDoc-&gt;m_lf;</P>

<P>// 使字体充满整个客户区</P>
<P>lf.lfHeight=sizeClient.cy;</P>
<P>lf.lfWidth=long(sizeClient.cx/str.GetLength());</P>

<P>// 用当前字体信息生成CFont对象</P>
<P>CFont *pFont=new CFont;</P>
<P>pFont-&gt;CreateFontIndirect(&amp;lf);</P>

<P>// 改变当前所用字体,并保存旧字体</P>
<P>CFont *pOldFont=pDC-&gt;SelectObject(pFont);</P>

<P>// 用新选定的字体绘制字符串 "您好, 欢迎使用本程序!"</P>
<P>CSize sizeTextExtent=pDC-&gt;GetTextExtent(str);</P>
<P>pDC-&gt;TextOut((sizeClient.cx-sizeTextExtent.cx)/2,</P>
<P>&#9;&#9;&#9; (sizeClient.cy-sizeTextExtent.cy)/2,</P>
<P>&#9;&#9;&#9; str);</P>

<P>// 恢复系统默认字体</P>
<P>pDC-&gt;SelectObject(pOldFont);</P>
</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><P ALIGN="JUSTIFY">在上面的示例程序中,我们在文档类中定义了两个公有的成员变量</FONT><FONT SIZE=3>m_str</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>和</FONT><FONT SIZE=3>m_lf</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>,然后在视类的</FONT><FONT SIZE=3>OnDraw</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>成员函数中访问了这两个成员变量,通过这些变量从文档中获取所要显示的字符串和所使用的字体。</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">很多时候我们常使用的是另外一种方法,即把成员变量定义为私有或保护成员,然后添加存取该成员变量的函数。如下面的代码所示:</P>
</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=1><P>protected:</P>
<P>&#9;CString m_str;</P>

<P>public:</P>
<P>&#9;CString GetStr()</P>
<P>&#9;{</P>
<P>&#9;&#9;CString *pStr=new CString;</P>
<P>&#9;&#9;*pStr=m_str;</P>
<P>&#9;&#9;return *pStr;</P>
<P>&#9;}</P>
</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><P ALIGN="JUSTIFY">这样的好处是可以防止数据成员被从类外部修改,从而维护了类中数据的安全。</P>

<UL>
</FONT><FONT FACE="黑体" LANG="ZH-CN" SIZE=3><P ALIGN="JUSTIFY"><LI>注意:</LI></P>
</FONT><FONT FACE="楷体_GB2312" LANG="ZH-CN" SIZE=3><P ALIGN="JUSTIFY"><LI>不象很多资料上所说的那样,在</FONT><FONT SIZE=3>GetStr</FONT><FONT FACE="楷体_GB2312" LANG="ZH-CN" SIZE=3>函数中使用下面的代码,并不能保证类中的保护成员绝对不会被从外部修改:</LI></P>
</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=1><P ALIGN="JUSTIFY"><LI>CString GetStr()</LI></P>
<P ALIGN="JUSTIFY"><LI>{</LI></P>
<P ALIGN="JUSTIFY"><LI>    return m_str;</LI></P>
<P ALIGN="JUSTIFY"><LI>}</LI></P></UL>
<DIR>
<DIR>

</FONT><FONT FACE="楷体_GB2312" LANG="ZH-CN" SIZE=3><P ALIGN="JUSTIFY">这时,如果类的使用者在外部使用了如下面的语句所示的强制类型转换,</P></DIR>
</DIR>


<UL>
</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=1><P ALIGN="JUSTIFY"><LI>CString&amp; str=(CString&amp;)pDoc-&gt;GetStr()</LI></P>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -