导航
  • 主页
  • VC综合技术
  • 互联网技术
  • MFC AppLauncher
  • .NET 技术
  • 界面
  • 进程
  • 算法
  • 硬件/系统
  • 数据库
  • VC++技术资源

谁用过CTabCtrl控件?请进来!在线等候!

wwrrcc2002 2002-07-23 06:10:09
下面的代码,可以创建CTabCtrl控件:
m_tabctrl.Create(WS_VISIBLE,CRect(30,30,400,400),this,0);
TCITEM tcItem1;
tcItem1.mask = TCIF_TEXT;
tcItem1.pszText = _T("Tab #1");
m_tabctrl.InsertItem(0, &tcItem1);
我现在想给“Tab #1"加上CEdit控件,也就是说单击"Tab #1"时,弹出的面板上
有Cedit控件,怎么样实现呢?
...全文
267 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
luckyum 2002-08-01
说实话我重没有过那个控件,我用CPropertysheet和CPropertyPage
*sheet为框架,用AddPage()加*Page
新建一个PropertyDialog基类为CPropertyPage
这样就可在Dialog想花编辑框还是其他都行,想控制有GetPage()的到
选种的对话框就可数据操作,要想更详细就多看书
哪本书多有属性页的,再就看例子
回复
seanhut 2002-07-30
property sheet wizard是一个控件,你在project->add to project->control
(我手里没有英文版的vc6,大概是这个顺序吧)可以找到.
回复
wwrrcc2002 2002-07-23
绿青虫:我现在想在"Tab #1"面板上,创建CEdit控件,怎么样实现呢?
段寄存器:怎么样创建属性页呢,好像没有property wizard吧
回复
sky3452 2002-07-23
标签控件和属性页有什么不同呢,请教一下
回复
seanhut 2002-07-23
我有一个别的方法,可以达到你的目的:
用property wizard 创建一个属性页,然后在你想要加入tab控件的地方建一个图片框(用来定位),然后,调用属性页的create方法创建,然后,用setwindowpos设定属性页的位置为图片框的位置,再用showwindow显示属性页
回复
luckyum 2002-07-23
VC5中,标签控件是由CTabCtrl类来作数据支持的。做一个标签控件,主要有以下几个步骤:
  一、在ResourceView标签页(就是VC5左面的标签控件第二项)的对话框中添加TABCTRL(比如取名为MYTABCTRL)。
  二、在ClassWizard中为刚添加的标签控件关联上一个CTabCtrl变量(比如取名为mytab)。
  三、为标签控件添加项目。
  四、到此为止,一个标签控件就做好了。现在便可以用ClassWizard为标签控件添加消息映射了。
  下面重点介绍为标签控件添加项目的方法。
  CTabCtrl类有一个成员函数InsertItem,它的原型是:
  BOOL InsertItem(int nItem,TC_ITEM*pTabCtrlItem);
  其中第一个参数是加入项目的序号,此序号将在调用CTabCtrl的另一个成员函数GetCurSel()时作为返回值。与GetCurSel()对应的就是SetCurSel(int nItem),SetCurSel函数可改变标签控件当前选定的项目,其中nItem就是该项目的序号。
  InsertItem的关键在于第二个参数PTabCtrlItem。这是一个指向TC_ITEM结构的指针。
  TC_ITEM结构的定义如下:
  typedef struct_TC_ITEM
  {
  UINT mask; // 标签控件的类型
  UINT lnReserved1; // VC保留,勿用
  UINT lnReserved2; // VC保留,勿用
  LPSTR pszText; // 标签控件的项目文字
  int cchTextMax; // pszText的长度
  int iImage; // 标签控件的图形序号
  LPARAM lParam; // 用于交换的数据
  }TC_ITEM;
  在编程中,真正经常使用的只有mask、pszText、iImage三个成员变量。
  1.mask
  指定标签控件的类型。它可以是以下三个值:
  TCIF_TEXT pszText成员有效
  TCIF_IMAGE iImage成员有效
  TCIF_PARAM iParam成员有效
  如果要使用多个属性,应该用按位或运算符“|”连接。例如要使pszText和iImage成员同时有效,则用TCIF_TEXT|TCIF_IMAGE作为mask的值。
  2.pszText
  标签控件的项目文字,可直接赋予字符串值。此时标签控件的类型必须有TCIF_TEXT。
  3.iImage
  标签控件的图形序号,这是为标签控件添加图形所必须用到的一个成员变量。此标签控件必须有TCIF_IMAGE。
  在赋值时,只需给这三个(有时是两个)变量赋值就行了。
  下面为大家介绍iImage的用法。
  iImage中存储的是项目的图形序号。这个序号所对应的图形(可能为图标和位图)将被显示到标签控件项目文字的左边。这些图形可以是任意大小,但必须一样大。
  标签控件的每一个项目的iImage组成了一个序列,这个序列所对应的图形是用另一个类CImageList来管理的。下面请看CImageList的用法。
  我在使用CImageList时,只用到以下几个成员函数:
  1.BOOL Create(int cx,int cy,UINT nFlags,int nInitial,int nGrow);
  这个函数建立一个含nGrow个图形(每个图形为cx长,cy高以nInitial为初值:通常为0)的空CImageList;其中有个nFlages参数,它用来指定图形的颜色属性,它的值只能为以下几个值中的一个:
  ILC_COLOR 使用默认颜色(一般为16色)
  ILC_COLOR4 使用4位色(16色)
  ILC_COLOR8 使用8位色(256色)
  ILC_COLOR16 使用16位色(64K色)
  ILC_COLOR24 使用24位色(16M色)
  ILC_COLOR32 使用32位色(4G色)
  ILC_COLORDDB 使用系统当前色
  2.BOOL Create(UINT nBitmapID,int cx,int nGrow,COLORREF crMask);
  这个函数是以nBitmapID所代表的位图(已在rc文件中定义,与定义工具条的位图相似)建立一个含有nGrow个图形(每个图形长为cx)的CImageList;
  其中crMask指定位图中的什么颜色将被替换为黑色,一般就用黑色(RGB(0,0,0))。
  3.int Add(CBitmap*pbmImage,COLORREF crMask);
  这个函数往CImageList中追加一个位图。其中nbmImage可以通过先定义一个CBitmap指针,再用CBitmap的成员LoadBitman来得到。比如:
  CBitmap*mvbitmap;
  mvhitmap=new CBitmap();
  mvbitmap->LoadBitmap(MYPICTURE); // MYPICTURE是已定义的位图资源crMask参数与前面相同。
  4.int Add(HICON hIcon):
  这个函数往CImageList中追加一个图标。
  其中hIcon可以用AfxGetApp()->LoadIcon(UINT nIDResource)来得到。如:AfxGetApp()->LoadIcon(MYICON);//其中MYICON是已定义的图标资源,当CImageList定制好后,调用CTabCtrl的成员函数SetImageList,其原型如下:
  CImageList*SetImageList(CImageList*pImageList);
  其中的pImageList正是指向我们刚才定制的CImageList对象的指针,而以前的iImage参数就是CImageList中的图形序号了。这样,一个带有图形的标签控件就做好了。
  关于标签控件,在一般编程中我们大约只用到以上函数。上面是我对标签控件编程的心得,希望能与大家分享。
回复
luckyum 2002-07-23
不要用控件了,用类多好,更加简单,我都不会用CTabCtrl了,都用
类了
回复
发动态
发帖子
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……