﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-The-Moment</title><link>http://www.cppblog.com/The-Moment/</link><description /><language>zh-cn</language><lastBuildDate>Tue, 07 Apr 2026 21:36:43 GMT</lastBuildDate><pubDate>Tue, 07 Apr 2026 21:36:43 GMT</pubDate><ttl>60</ttl><item><title>属性单和属性页</title><link>http://www.cppblog.com/The-Moment/archive/2009/07/30/91738.html</link><dc:creator>The_Moment</dc:creator><author>The_Moment</author><pubDate>Thu, 30 Jul 2009 11:41:00 GMT</pubDate><guid>http://www.cppblog.com/The-Moment/archive/2009/07/30/91738.html</guid><wfw:comment>http://www.cppblog.com/The-Moment/comments/91738.html</wfw:comment><comments>http://www.cppblog.com/The-Moment/archive/2009/07/30/91738.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/The-Moment/comments/commentRss/91738.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/The-Moment/services/trackbacks/91738.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;利用属性单和属性页的组合，能很好的解决单个对话框显示很多控件的问题。主要使用了CPropertySheet类和CproperPage类，CpropertyPage类代表每个单独的选项卡，CPropertySheet类代表显示这些选项卡的窗口。CPropertySheet类是从CWnd派生而来的，选项卡（CPropertyPage）则是从CDialog派生而来的。<br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;模态属性单实例程序主要讲解CPropertySheet和CPropertyPage类的不同方面。<br>1）创建程序的框架<br>&nbsp;&nbsp;&nbsp;常见一个名为ModalDemo的MFC SDI项目。再添加两个对话框，ID分别为IDD_FINDBOOK_FIND和IDD_FINDBOOK_RESULTS，并为两个对话框创建派生于CPropertyPage类的CFindPage类和CResultsPage类。添加一个ID为IDS_FIND，Caption为FindBook的字符串资源，它将被传递给CPropertySheet构造函数。最后，在IDR_MAINFRAME菜单栏添加Books，并添加子项FindBook，ID为ID_FINDBOOK。<br>2）单击ID_FINDBOOK事件<br>&nbsp;&nbsp;&nbsp;创建有IDD_FINDBOOK_FIND和IDD_FINDBOOK_RESULTS为属性页和IDS_FIND为属性单的组合。在这里创建CPropertySheet的派生类CFindSheet。
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;CMainFrame::OnFindbook()&nbsp;<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;CFindSheet&nbsp;sheet(IDS_FIND);<br>&nbsp;&nbsp;&nbsp;&nbsp;CFindPage&nbsp;pageFind;<br>&nbsp;&nbsp;&nbsp;&nbsp;CResultsPage&nbsp;pageResults;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;sheet.AddPage(</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">pageFind);///////////////////////////////////////////////////////////////////////////////////<br>&nbsp;&nbsp;&nbsp;&nbsp;sheet.AddPage(</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">pageResults);<br>&nbsp;&nbsp;&nbsp;&nbsp;sheet.DoModal();<br>}</span></div>
3）去除标准按钮<br>&nbsp;&nbsp;&nbsp;标准按钮有OK（IDOK）、Cancel（IDCANCEL）、Help（IDHELP）和Apply（ID_APPLY_NOW）。这里去除掉Cancel和Apply两个按钮。
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">BOOL&nbsp;CFindSheet::OnInitDialog()&nbsp;<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;BOOL&nbsp;bResult&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;CPropertySheet::OnInitDialog();<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;ids[]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">{ID_APPLY_NOW,IDCANCEL};<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #0000ff">sizeof</span><span style="COLOR: #000000">(ids)</span><span style="COLOR: #000000">/</span><span style="COLOR: #0000ff">sizeof</span><span style="COLOR: #000000">(ids[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">]);i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CWnd</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;pWnd</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">GetDlgItem(ids[i]);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(pWnd)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pWnd</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">ShowWindow(FALSE);<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;bResult;<br>}</span></div>
4）重定位标准按钮<br>&nbsp;&nbsp;&nbsp;默认情况下，标准按钮是在属性页的下方，这里把OK按钮移到沿属性页右对齐。
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">BOOL&nbsp;CFindSheet::OnInitDialog()&nbsp;<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;BOOL&nbsp;bResult&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;CPropertySheet::OnInitDialog();<br><br>&nbsp;&nbsp;&nbsp;&nbsp;CWnd</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;pbtnOk</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">GetDlgItem(IDOK);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;CRect&nbsp;rectSheet;<br>&nbsp;&nbsp;&nbsp;&nbsp;GetWindowRect(rectSheet);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;CRect&nbsp;rectOkBtn;<br>&nbsp;&nbsp;&nbsp;&nbsp;pbtnOk</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">GetWindowRect(rectOkBtn);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;iBorder</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">rectSheet.bottom</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">rectOkBtn.bottom;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;rectSheet.right</span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000">rectOkBtn.Width()</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">iBorder;<br>&nbsp;&nbsp;&nbsp;&nbsp;rectSheet.bottom</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">rectOkBtn.top;<br>&nbsp;&nbsp;&nbsp;&nbsp;MoveWindow(rectSheet);/////////////////////////////////////////////////////////////////////////////<br><br>&nbsp;&nbsp;&nbsp;&nbsp;CPropertyPage</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;page</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">GetPage(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">);//////////////////////////////////////////////////////////////////<br>&nbsp;&nbsp;&nbsp;&nbsp;CRect&nbsp;rectPage;<br>&nbsp;&nbsp;&nbsp;&nbsp;page</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">GetWindowRect(rectPage);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;cxOk</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">rectOkBtn.Width();<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;cyOk</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">rectOkBtn.Height();<br><br>&nbsp;&nbsp;&nbsp;&nbsp;rectOkBtn.top</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">rectPage.top;<br>&nbsp;&nbsp;&nbsp;&nbsp;rectOkBtn.bottom</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">rectOkBtn.top</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">cyOk;<br>&nbsp;&nbsp;&nbsp;&nbsp;rectOkBtn.left</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">rectSheet.right</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">(cxOk</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">iBorder);<br>&nbsp;&nbsp;&nbsp;&nbsp;rectOkBtn.right</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">rectOkBtn.left</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">cxOk;<br>&nbsp;&nbsp;&nbsp;&nbsp;ScreenToClient(rectOkBtn);<br>&nbsp;&nbsp;&nbsp;&nbsp;pbtnOk</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">MoveWindow(rectOkBtn);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;bResult;<br>}</span></div>
5）更改标准按钮的标题<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">BOOL&nbsp;CFindSheet::OnInitDialog()&nbsp;<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;BOOL&nbsp;bResult&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;CPropertySheet::OnInitDialog();<br><br>&nbsp;&nbsp;&nbsp;&nbsp;pbtnOk</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">SetWindowText(_T(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Cl&amp;ose</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">));////////////////////////////////////////////////////////////////<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;bResult;<br>}</span></div>
6）禁用选项卡<br>&nbsp;&nbsp;&nbsp;创建一个存储当前选项卡索引的成员变量和一个容纳当前被禁用的选项卡的成员变量
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;m_iLastActivePage;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">当前选项卡索引</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;CUIntArray&nbsp;m_arrDisabledPages;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">被禁用的选项卡索引</span></div>
&nbsp;&nbsp;&nbsp;添加禁用指定的选项卡的成员函数和设置已禁用选项卡的标题的成员函数
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #0000ff">#define DISABLED_TEXT "-Disabled"<br>void</span><span style="COLOR: #000000">&nbsp;CFindSheet::DisablePage(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;iFirstPage,<img src="http://www.cppblog.com/Images/dot.gif">)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;iPage</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">iFirstPage;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;va_list&nbsp;marker;)////////////////////////////////////////////////<br>&nbsp;&nbsp;&nbsp;&nbsp;va_start&nbsp;(marker,iFirstPage);)////////////////////////////////////////////////<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;nArgs</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">(iPage</span><span style="COLOR: #000000">!=-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_arrDisabledPages.Add(iPage);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SetDisabledText(iPage);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iPage</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">va_arg(marker,UINT);)////////////////////////////////////////////////<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>}<br><br></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;CFindSheet::SetDisabledText(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;iPage)///////////////////////////////////////////////<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;CTabCtrl</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;pTab</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">GetTabControl();<br>&nbsp;&nbsp;&nbsp;&nbsp;TC_ITEM&nbsp;ti;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;szText[</span><span style="COLOR: #000000">100</span><span style="COLOR: #000000">];<br>&nbsp;&nbsp;&nbsp;&nbsp;ti.mask</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">TCIF_TEXT;<br>&nbsp;&nbsp;&nbsp;&nbsp;ti.pszText</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">szText;<br>&nbsp;&nbsp;&nbsp;&nbsp;ti.cchTextMax</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">100</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;pTab</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">GetItem(iPage,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">ti);<br>&nbsp;&nbsp;&nbsp;&nbsp;strcat(szText,DISABLED_TEXT);<br>&nbsp;&nbsp;&nbsp;&nbsp;pTab</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">SetItem(iPage,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">ti);<br>}<br></span></div>
&nbsp;&nbsp;&nbsp;为禁用的选项卡处理通知消息：使用ClassWizard实现OnNotify虚函数，处理TCN_SELCHANGING通知消息，以设置当前的选项卡索引。处理TCN_SELCHANGED消息，以确定是否允许选项卡被激活。如果不允许，则必须传递一个PSM_SETCURSEL消息。在这个消息中，指定了上一个活动的选项卡索引。<br>&nbsp;&nbsp;&nbsp;添加一个函数来验证是否禁用了选项卡
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">BOOL&nbsp;CFindSheet::OnNotify(WPARAM&nbsp;wParam,&nbsp;LPARAM&nbsp;lParam,&nbsp;LRESULT</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;pResult)&nbsp;<br>{<br>&nbsp;&nbsp;&nbsp; </span><span style="COLOR: #000000">NMHDR</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;pnmh</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">(NMHDR</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">)lParam;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(TCN_SELCHANGING</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">pnmh</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">code)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_iLastActivePage</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">GetActiveIndex();<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(TCN_SELCHANGE</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">pnmh</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">code)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;iCurrPage</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">GetActiveIndex();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(IsPageDisabled(iCurrPage))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PostMessage(PSM_SETCURSEL,m_iLastActivePage);<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;CPropertySheet::OnNotify(wParam,&nbsp;lParam,&nbsp;pResult);<br>}<br><br>BOOL&nbsp;CFindSheet::IsPageDisabled(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;iPage)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;BOOL&nbsp;bFoundEntry</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">FALSE;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;iSize</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">m_arrDisabledPages.GetSize();<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">(i</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">iSize</span><span style="COLOR: #000000">&amp;&amp;!</span><span style="COLOR: #000000">bFoundEntry)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(m_arrDisabledPages.GetAt(i)</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">(UINT)iPage)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bFoundEntry</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">TRUE;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;bFoundEntry;<br>}</span></div>
&nbsp;&nbsp;&nbsp;测试禁用选项卡的功能<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">BOOL&nbsp;CFindSheet::OnInitDialog()&nbsp;<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;BOOL&nbsp;bResult&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;CPropertySheet::OnInitDialog();<br><br>&nbsp;&nbsp;&nbsp;&nbsp;DisablePage(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;bResult;<br>}</span></div>
7）重新启用属性页<br>&nbsp;&nbsp;&nbsp;EnablePage函数只需要在m_arrDisabledPages数组搜索指定的属性页即可，如果找到了这个属性页，则从数组中去掉该页，并调用SetEnabledText函数去掉&#8220;-Disabled&#8221;<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;CFindSheet::SetEnabledText(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;iPage)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;CTabCtrl&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;pTab</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">GetTabControl();<br>&nbsp;&nbsp;&nbsp;&nbsp;TC_ITEM&nbsp;ti;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;szText[</span><span style="COLOR: #000000">100</span><span style="COLOR: #000000">];<br>&nbsp;&nbsp;&nbsp;&nbsp;ti.mask</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">TCIF_TEXT;<br>&nbsp;&nbsp;&nbsp;&nbsp;ti.pszText</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">szText;<br>&nbsp;&nbsp;&nbsp;&nbsp;ti.cchTextMax</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">100</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;pTab</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">GetItem(iPage,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">ti);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;pFound</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">strstr(szText,DISABLED_TEXT);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(pFound)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">pFound</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">\0</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pTab</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">SetItem(iPage,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">ti);<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>}<br></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;CFindSheet::EnablePage(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;iPage)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;BOOL&nbsp;bFoundEntry</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">FALSE;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;iSize</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">m_arrDisabledPages.GetSize();<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">(i</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">iSize</span><span style="COLOR: #000000">&amp;&amp;!</span><span style="COLOR: #000000">bFoundEntry)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(m_arrDisabledPages.GetAt(i)</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">(UINT)iPage)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bFoundEntry</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">TRUE;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000">&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(bFoundEntry)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_arrDisabledPages.RemoveAt(i);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SetEnabledText(iPage);<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>}</span></div>
&nbsp;&nbsp;&nbsp;测试EnableTab函数，处理CFindPage中Find按钮的事件
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;CFindPage::OnButton1()&nbsp;<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;CFindSheet&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;pParentSheet</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">(CFindSheet</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">)GetParent();<br>&nbsp;&nbsp;&nbsp;&nbsp;ASSERT(pParentSheet</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">IsKindOf(RUNTIME_CLASS(CFindSheet)));<br>&nbsp;&nbsp;&nbsp;&nbsp;pParentSheet</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">EnablePage(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br>}</span></div>
8）更改选项卡的字体
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000"><br>BOOL&nbsp;CFindSheet::OnInitDialog()&nbsp;<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;BOOL&nbsp;bResult&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;CPropertySheet::OnInitDialog();<br><br>&nbsp;&nbsp;&nbsp;&nbsp;m_fontTab.CreateFont(</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">8</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,FW_BOLD,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,_T(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">MS&nbsp;Sans&nbsp;Serif</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">));<br>&nbsp;&nbsp;&nbsp;&nbsp;CTabCtrl&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;pTab</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">GetTabControl();<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(pTab)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pTab</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">SetFont(</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">m_fontTab);/////////////////////////////////////////////////////////////////////<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;bResult;<br>}</span></div>
<p>&nbsp;&nbsp;&nbsp;相关函数：<br>sheet.AddPage(&amp;pageFind);</p>
<p>MoveWindow(rectSheet);<br>CPropertyPage* page=GetPage(0);</p>
<p>pbtnOk-&gt;SetWindowText(_T("Cl&amp;ose"));</p>
<p>va_list marker;<br>va_start (marker,iFirstPage);<br>iPage=va_arg(marker,UINT);</p>
<p>void CFindSheet::SetDisabledText(int iPage)<br>{<br>&nbsp;CTabCtrl* pTab=GetTabControl();<br>&nbsp;TC_ITEM ti;<br>&nbsp;char szText[100];<br>&nbsp;ti.mask=TCIF_TEXT;<br>&nbsp;ti.pszText=szText;<br>&nbsp;ti.cchTextMax=100;<br>&nbsp;pTab-&gt;GetItem(iPage,&amp;ti);<br>&nbsp;strcat(szText,DISABLED_TEXT);<br>&nbsp;pTab-&gt;SetItem(iPage,&amp;ti);<br>}</p>
<p>BOOL CFindSheet::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult) <br>{<br>&nbsp;&nbsp;&nbsp; NMHDR* pnmh=(NMHDR*)lParam;<br>&nbsp;&nbsp;&nbsp; if(TCN_SELCHANGING==pnmh-&gt;code)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_iLastActivePage=GetActiveIndex();<br>&nbsp;&nbsp;&nbsp; else if(TCN_SELCHANGE==pnmh-&gt;code)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int iCurrPage=GetActiveIndex();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(IsPageDisabled(iCurrPage))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PostMessage(PSM_SETCURSEL,m_iLastActivePage);<br>&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; return CPropertySheet::OnNotify(wParam, lParam, pResult);<br>}</p>
<p>char * pFound=strstr(szText,DISABLED_TEXT);</p>
<p>CFindSheet * pParentSheet=(CFindSheet*)GetParent();<br>ASSERT(pParentSheet-&gt;IsKindOf(RUNTIME_CLASS(CFindSheet)));</p>
<p>pTab-&gt;SetFont(&amp;m_fontTab);</p>
<img src ="http://www.cppblog.com/The-Moment/aggbug/91738.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/The-Moment/" target="_blank">The_Moment</a> 2009-07-30 19:41 <a href="http://www.cppblog.com/The-Moment/archive/2009/07/30/91738.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CSV逗号分隔值文件（Comma Separated value）</title><link>http://www.cppblog.com/The-Moment/archive/2009/07/29/91639.html</link><dc:creator>The_Moment</dc:creator><author>The_Moment</author><pubDate>Wed, 29 Jul 2009 15:06:00 GMT</pubDate><guid>http://www.cppblog.com/The-Moment/archive/2009/07/29/91639.html</guid><wfw:comment>http://www.cppblog.com/The-Moment/comments/91639.html</wfw:comment><comments>http://www.cppblog.com/The-Moment/archive/2009/07/29/91639.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/The-Moment/comments/commentRss/91639.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/The-Moment/services/trackbacks/91639.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 该例子包含的CStdioFile的应用和如何将数据添加入列表框&nbsp;&nbsp;<a href='http://www.cppblog.com/The-Moment/archive/2009/07/29/91639.html'>阅读全文</a><img src ="http://www.cppblog.com/The-Moment/aggbug/91639.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/The-Moment/" target="_blank">The_Moment</a> 2009-07-29 23:06 <a href="http://www.cppblog.com/The-Moment/archive/2009/07/29/91639.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C、C++和MFC中文件的读写方法</title><link>http://www.cppblog.com/The-Moment/archive/2009/07/29/91556.html</link><dc:creator>The_Moment</dc:creator><author>The_Moment</author><pubDate>Wed, 29 Jul 2009 02:07:00 GMT</pubDate><guid>http://www.cppblog.com/The-Moment/archive/2009/07/29/91556.html</guid><wfw:comment>http://www.cppblog.com/The-Moment/comments/91556.html</wfw:comment><comments>http://www.cppblog.com/The-Moment/archive/2009/07/29/91556.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/The-Moment/comments/commentRss/91556.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/The-Moment/services/trackbacks/91556.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 介绍多种打开文件的方法！！！&nbsp;&nbsp;<a href='http://www.cppblog.com/The-Moment/archive/2009/07/29/91556.html'>阅读全文</a><img src ="http://www.cppblog.com/The-Moment/aggbug/91556.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/The-Moment/" target="_blank">The_Moment</a> 2009-07-29 10:07 <a href="http://www.cppblog.com/The-Moment/archive/2009/07/29/91556.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>对话框基础知识及常用控件简介</title><link>http://www.cppblog.com/The-Moment/archive/2009/07/26/91224.html</link><dc:creator>The_Moment</dc:creator><author>The_Moment</author><pubDate>Sun, 26 Jul 2009 02:38:00 GMT</pubDate><guid>http://www.cppblog.com/The-Moment/archive/2009/07/26/91224.html</guid><wfw:comment>http://www.cppblog.com/The-Moment/comments/91224.html</wfw:comment><comments>http://www.cppblog.com/The-Moment/archive/2009/07/26/91224.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/The-Moment/comments/commentRss/91224.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/The-Moment/services/trackbacks/91224.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 控件中包括了控件的颜色和字体的修改、按钮位图的两种形式、把MFC类与控件4中关联的方法！！&nbsp;&nbsp;<a href='http://www.cppblog.com/The-Moment/archive/2009/07/26/91224.html'>阅读全文</a><img src ="http://www.cppblog.com/The-Moment/aggbug/91224.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/The-Moment/" target="_blank">The_Moment</a> 2009-07-26 10:38 <a href="http://www.cppblog.com/The-Moment/archive/2009/07/26/91224.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用Windows剪贴板API</title><link>http://www.cppblog.com/The-Moment/archive/2009/07/24/91004.html</link><dc:creator>The_Moment</dc:creator><author>The_Moment</author><pubDate>Fri, 24 Jul 2009 02:55:00 GMT</pubDate><guid>http://www.cppblog.com/The-Moment/archive/2009/07/24/91004.html</guid><wfw:comment>http://www.cppblog.com/The-Moment/comments/91004.html</wfw:comment><comments>http://www.cppblog.com/The-Moment/archive/2009/07/24/91004.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/The-Moment/comments/commentRss/91004.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/The-Moment/services/trackbacks/91004.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要:    事实上，有两种不同的剪贴板接口机制。第一种机制是使用Windows剪贴板API，第二种机制则是使用OLE。以为剪贴板API是迄今为止最常用的方法，一次本章中主要介绍使用Windows剪贴板API。这里还给了具体的例子<br>&nbsp;&nbsp;<a href='http://www.cppblog.com/The-Moment/archive/2009/07/24/91004.html'>阅读全文</a><img src ="http://www.cppblog.com/The-Moment/aggbug/91004.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/The-Moment/" target="_blank">The_Moment</a> 2009-07-24 10:55 <a href="http://www.cppblog.com/The-Moment/archive/2009/07/24/91004.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>英语中浊化、连读、弱化、爆破的规则 </title><link>http://www.cppblog.com/The-Moment/archive/2009/07/22/90870.html</link><dc:creator>The_Moment</dc:creator><author>The_Moment</author><pubDate>Wed, 22 Jul 2009 15:35:00 GMT</pubDate><guid>http://www.cppblog.com/The-Moment/archive/2009/07/22/90870.html</guid><wfw:comment>http://www.cppblog.com/The-Moment/comments/90870.html</wfw:comment><comments>http://www.cppblog.com/The-Moment/archive/2009/07/22/90870.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/The-Moment/comments/commentRss/90870.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/The-Moment/services/trackbacks/90870.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 英语中浊化、连读、弱化、爆破的规则是怎样的？何时弱化、何时浊化、何时连读、何时爆破？ <br><br>&nbsp;&nbsp;<a href='http://www.cppblog.com/The-Moment/archive/2009/07/22/90870.html'>阅读全文</a><img src ="http://www.cppblog.com/The-Moment/aggbug/90870.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/The-Moment/" target="_blank">The_Moment</a> 2009-07-22 23:35 <a href="http://www.cppblog.com/The-Moment/archive/2009/07/22/90870.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>日常英语1000句 </title><link>http://www.cppblog.com/The-Moment/archive/2009/07/22/90869.html</link><dc:creator>The_Moment</dc:creator><author>The_Moment</author><pubDate>Wed, 22 Jul 2009 15:33:00 GMT</pubDate><guid>http://www.cppblog.com/The-Moment/archive/2009/07/22/90869.html</guid><wfw:comment>http://www.cppblog.com/The-Moment/comments/90869.html</wfw:comment><comments>http://www.cppblog.com/The-Moment/archive/2009/07/22/90869.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/The-Moment/comments/commentRss/90869.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/The-Moment/services/trackbacks/90869.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 日常英语1000句 .........中英文对照&nbsp;&nbsp;<a href='http://www.cppblog.com/The-Moment/archive/2009/07/22/90869.html'>阅读全文</a><img src ="http://www.cppblog.com/The-Moment/aggbug/90869.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/The-Moment/" target="_blank">The_Moment</a> 2009-07-22 23:33 <a href="http://www.cppblog.com/The-Moment/archive/2009/07/22/90869.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>各种符号的英文表达 </title><link>http://www.cppblog.com/The-Moment/archive/2009/07/22/90867.html</link><dc:creator>The_Moment</dc:creator><author>The_Moment</author><pubDate>Wed, 22 Jul 2009 15:31:00 GMT</pubDate><guid>http://www.cppblog.com/The-Moment/archive/2009/07/22/90867.html</guid><wfw:comment>http://www.cppblog.com/The-Moment/comments/90867.html</wfw:comment><comments>http://www.cppblog.com/The-Moment/archive/2009/07/22/90867.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/The-Moment/comments/commentRss/90867.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/The-Moment/services/trackbacks/90867.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 关于常见符号的英语翻译&nbsp;&nbsp;<a href='http://www.cppblog.com/The-Moment/archive/2009/07/22/90867.html'>阅读全文</a><img src ="http://www.cppblog.com/The-Moment/aggbug/90867.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/The-Moment/" target="_blank">The_Moment</a> 2009-07-22 23:31 <a href="http://www.cppblog.com/The-Moment/archive/2009/07/22/90867.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>COM技术入门基础知识 </title><link>http://www.cppblog.com/The-Moment/archive/2009/07/21/90756.html</link><dc:creator>The_Moment</dc:creator><author>The_Moment</author><pubDate>Tue, 21 Jul 2009 10:18:00 GMT</pubDate><guid>http://www.cppblog.com/The-Moment/archive/2009/07/21/90756.html</guid><wfw:comment>http://www.cppblog.com/The-Moment/comments/90756.html</wfw:comment><comments>http://www.cppblog.com/The-Moment/archive/2009/07/21/90756.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/The-Moment/comments/commentRss/90756.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/The-Moment/services/trackbacks/90756.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 这几天在学习COM组件技术，网上看了很多教程，发现了一些总结，感觉 挺不错。相对来说比较理论话，对于COM的认识还比较模糊。&nbsp;&nbsp;<a href='http://www.cppblog.com/The-Moment/archive/2009/07/21/90756.html'>阅读全文</a><img src ="http://www.cppblog.com/The-Moment/aggbug/90756.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/The-Moment/" target="_blank">The_Moment</a> 2009-07-21 18:18 <a href="http://www.cppblog.com/The-Moment/archive/2009/07/21/90756.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>VC中_T()的作用 </title><link>http://www.cppblog.com/The-Moment/archive/2009/07/11/89773.html</link><dc:creator>The_Moment</dc:creator><author>The_Moment</author><pubDate>Sat, 11 Jul 2009 02:28:00 GMT</pubDate><guid>http://www.cppblog.com/The-Moment/archive/2009/07/11/89773.html</guid><wfw:comment>http://www.cppblog.com/The-Moment/comments/89773.html</wfw:comment><comments>http://www.cppblog.com/The-Moment/archive/2009/07/11/89773.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/The-Moment/comments/commentRss/89773.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/The-Moment/services/trackbacks/89773.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Windows使用两种字符集ANSI和UNICODE,<br>前者就是通常使用的单字节方式，但这种方式处理象中文这样的双字节字符不方便，容易出现半个汉字的情况。<br>&nbsp;&nbsp;<a href='http://www.cppblog.com/The-Moment/archive/2009/07/11/89773.html'>阅读全文</a><img src ="http://www.cppblog.com/The-Moment/aggbug/89773.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/The-Moment/" target="_blank">The_Moment</a> 2009-07-11 10:28 <a href="http://www.cppblog.com/The-Moment/archive/2009/07/11/89773.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>