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

📄 teach_road_49.htm

📁 闻怡洋VC基础教程 里面是一些VC的基础知识
💻 HTM
字号:

<!-- LANGUAGE='JavaScript'>write_body();<-->
<!-- LANGUAGE='JavaScript'>write_bar();<-->


<table width=98% cellspacing="0" cellpadding="0" align=center><!--整体框架-->
<tr><td>

<table border=0 width="100%" cellspacing="0" cellpadding="2"><!--标记放置区域-->
<tr>
	<td width="30%" align="center" bgcolor="#8E8E8E" valign=middle><img src=../../img/brand_200_60.gif width=200 height=60 alt="LOGO1"></td>
	<td width="70%" align="center" bgcolor="#8E8E8E" valign=middle><!-- LANGUAGE='JavaScript'>write_ban();<--></td>
</tr>
<tr>
	<td colspan="2" bgcolor="#939393" align=center><font color=white>您当前位置</font></font> <a href=../../index.htm><font color=white>首页</font></a> <a href=../index.htm><font color=white>开发教程</font></a> <a href=index.htm><font color=white><font class=engul>Visual C++/MFC</font>入门教程</font></a> <font color=white><font class=eng color=white>4.9  Tab Ctrl</font><!-- LANGUAGE='JavaScript'>write_command();<--></font></td>
</tr>
</table><!--标记放置区域 END-->

<table border=0 width=100% cellspacing="0" cellpadding="0">
<tr>
<td><!--begin-->

<br>
<p align=center><big><font class=eng>4.9  Tab Ctrl</font></big></p>
<table border=0 align=center width=100%>
<tr><td>
<small>
<p>Tab属性页控件可以在一个窗口中添加不同的页面,然后在页选择发生改变时得到通知。MFC中使用CTabCtrl类来封装属性页控件的各种操作。通过调用<br>
BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );创建一个窗口,dwStyle中可以使用以下一些属性页控件的专用风格:
<ul>
<li>
<b>TCS_BUTTONS</b> 使用按钮来表示页选择位置</li>
<li>
<b>TCS_MULTILINE</b> 分行显示页选择位置</li>
<li>
<b>TCS_SINGLELINE</b> 只使用一行显示页选择位置</li>
</ul>
<p>
在控件创建后必需向其中添加页面才可以使用,添加页面的函数为:
<br>BOOL InsertItem( int nItem, LPCTSTR lpszItem );nItem为位置,从零开始,lpszItem为页选择位置上显示的文字。如果你希望在页选择位置处显示一个图标,你可以调用
<br>BOOL InsertItem( int nItem, LPCTSTR lpszItem, int nImage );nImage指明所使用的图片位置。(在此之前必须调用CImageList * SetImageList( CImageList * pImageList );设置正确的ImageList)
</p>
<p>此外CTabCtrl还提供了一些函数用于得到/修改控件的状态。
<br>int GetCurSel( )/int SetCurSel( int nItem );用于得到/设置当前被选中的页位置。
<br>BOOL DeleteItem( int nItem )/BOOL DeleteAllItems( );用于删除指定/所有页面。
<br>void RemoveImage( int nImage );用于删除某页选择位置上的图标。
</p>
<p>属性页控件的消息映射同样使用ON_NOTIFY宏,形式如同:ON_NOTIFY( wNotifyCode, id, memberFxn ),wNotifyCode为通知代码,id为产生该消息的窗口ID,memberFxn为处理函数,函数的原型如同void OnXXXTab(NMHDR* pNMHDR, LRESULT* pResult),其中pNMHDR为一数据结构,在具体使用时需要转换成其他类型的结构。对于列表控件可能取值和对应的数据结构为:
<ul>
<li>TCN_SELCHANGE 在当前页改变后发送,所用结构:NMHDR</li>
<li>TCN_SELCHANGING 在当前页改变时发送可以通过返回TRUE来禁止页面的改变,所用结构:NMHDR</li>
</ul>
</p>
<p>一般来讲在当前页发生改变时需要隐藏当前的一些子窗口,并显示其它的子窗口。下面的伪代码演示了如何使用属性页控件:
<pre>
CParentWnd::OnCreate(...)
{
	m_tab.Create(...);
	m_tab.InsertItem(0,"Option 1");
	m_tab.InsertItem(1,"Option 2");
	Create a edit box as the m_tab's Child
	Create a static box as the m_tab's Child
	edit_box.ShowWindow(SW_SHOW); // edit box在属性页的第一页
	static_box.ShowWindow(SW_HIDE); // static box在属性页的第二页
}
void CParentWnd::OnSelectChangeTab(NMHDR* pNMHDR, LRESULT* pResult)
{//处理页选择改变后的消息
	if(m_tab.GetCurSel()==0)
	{//根据当前页显示/隐藏不同的子窗口
		edit_box.ShowWindow(SW_SHOW);
		static_box.ShowWindow(SW_HIDE);
	}
	else
	{//
		edit_box.ShowWindow(SW_HIDE);
		static_box.ShowWindow(SW_SHOW);
	}
}
</pre>
</p>
</small>
</td>
</tr>
<tr><td>
<small>
<p align=center><a href=index.htm#charpter4>返回</a></p>
</small>
</td></tr>
</table>
<p align=center><small>版权所有 闻怡洋 <a href=http://www.vchelp.net/>http://www.vchelp.net/</a></small></p>

</td><!--end-->
</tr>
</table>

</td></tr></table><!--整体框架 END-->






<!-- LANGUAGE='JavaScript'>write_tail();<-->


⌨️ 快捷键说明

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