📄 chap08.html
字号:
<P>CString str=pDoc->m_str;</P>
<P>LOGFONT lf=pDoc->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->CreateFontIndirect(&lf);</P>
<P>// 改变当前所用字体,并保存旧字体</P>
<P>CFont *pOldFont=pDC->SelectObject(pFont);</P>
<P>// 用新选定的字体绘制字符串 "您好, 欢迎使用本程序!"</P>
<P>CSize sizeTextExtent=pDC->GetTextExtent(str);</P>
<P>pDC->TextOut((sizeClient.cx-sizeTextExtent.cx)/2,</P>
<P>			 (sizeClient.cy-sizeTextExtent.cy)/2,</P>
<P>			 str);</P>
<P>// 恢复系统默认字体</P>
<P>pDC->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>	CString m_str;</P>
<P>public:</P>
<P>	CString GetStr()</P>
<P>	{</P>
<P>		CString *pStr=new CString;</P>
<P>		*pStr=m_str;</P>
<P>		return *pStr;</P>
<P>	}</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& str=(CString&)pDoc->GetStr()</LI></P>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -