荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: Second (石开), 信区: Program
标  题: 4.9 Tab Ctrl
发信站: 荔园晨风BBS站 (Wed May 30 01:30:20 2001), 转信

4.9 Tab Ctrl
Tab属性页控件可以在一个窗口中添加不同的页面,然后在页选择发生改变时得到通知。
MFC中使用CTabCtrl类来封装属性页控件的各种操作。通过调用
BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );创
建一个窗口,dwStyle中可以使用以下一些属性页控件的专用风格:
TCS_BUTTONS 使用按钮来表示页选择位置
TCS_MULTILINE 分行显示页选择位置
TCS_SINGLELINE 只使用一行显示页选择位置
在控件创建后必需向其中添加页面才可以使用,添加页面的函数为:
BOOL InsertItem( int nItem, LPCTSTR lpszItem );nItem为位置,从零开始,lpszIt
em为页选择位置上显示的文字。如果你希望在页选择位置处显示一个图标,你可以调用

BOOL InsertItem( int nItem, LPCTSTR lpszItem, int nImage );nImage指明所使用的
图片位置。(在此之前必须调用CImageList * SetImageList( CImageList * pImageLi
st );设置正确的ImageList)
此外CTabCtrl还提供了一些函数用于得到/修改控件的状态。
int GetCurSel( )/int SetCurSel( int nItem );用于得到/设置当前被选中的页位置。

BOOL DeleteItem( int nItem )/BOOL DeleteAllItems( );用于删除指定/所有页面。
void RemoveImage( int nImage );用于删除某页选择位置上的图标。
属性页控件的消息映射同样使用ON_NOTIFY宏,形式如同:ON_NOTIFY( wNotifyCode, i
d, memberFxn ),wNotifyCode为通知代码,id为产生该消息的窗口ID,memberFxn为处
理函数,函数的原型如同void OnXXXTab(NMHDR* pNMHDR, LRESULT* pResult),其中pN
MHDR为一数据结构,在具体使用时需要转换成其他类型的结构。对于列表控件可能取值
和对应的数据结构为:
TCN_SELCHANGE 在当前页改变后发送,所用结构:NMHDR
TCN_SELCHANGING 在当前页改变时发送可以通过返回TRUE来禁止页面的改变,所用结构
:NMHDR
一般来讲在当前页发生改变时需要隐藏当前的一些子窗口,并显示其它的子窗口。下面
的伪代码演示了如何使用属性页控件:
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);
 }
}

--
                            既然热爱生命
                            那么,
                            一切都在意料之中。

※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.28.190]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店