有关CTabCtrl的两个函数的问题?

GGYYBOY 2007-03-15 10:57:01
如下的两个函数调用:
int n=pTabPage->GetItemCount();
CTabCtrl * pNextTabPage=(CTabCtrl*)pTabPage->GetNextDlgTabItem(pTabPage,FALSE);
我明明有三个Tab 属性页,pTabPage为第一个Tab 属性页的指针,为什么返回值总是为零啊,第二个函数为什么返回值pNextTabPage总是与pTabPage相同,而不是下一个属性页的指针啊?
大家教我
...全文
338 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
GGYYBOY 2007-03-16
  • 打赏
  • 举报
回复
我通过它的 Control ID 得到的,我通过SPY++看了 他们的Instance Handle相同,但是Window Handle不相同啊,而且我试了我获得的第一个属性页的句柄是对的
w_anthony 2007-03-16
  • 打赏
  • 举报
回复
你是怎么取得第一个属性页的指针的?
VC的Tab所有属性页的句柄都相同,没有这个属性页和下个属性页的概念。
GGYYBOY 2007-03-16
  • 打赏
  • 举报
回复
我是在已知第一个属性页的指针pTabPage时,用函数int n=pTabPage->GetItemCount();的
如果不对,那么应该怎么办呢?还有就是怎样才能获得下一个属性页的指针或句柄?
w_anthony 2007-03-16
  • 打赏
  • 举报
回复
我新建了一个项目试了一下,GetItemCount()完全正确,LZ的GetItemCount()一直返回0的话,只有两种可能性:
1、你没有插入任何页面。
2、CTabCtrl指针找错了。

没有CTabCtrl的创建和插入代码,我无法判断
GGYYBOY 2007-03-16
  • 打赏
  • 举报
回复
那我怎样知道一个对话框上有几个属性页呢,用什么函数啊
w_anthony 2007-03-16
  • 打赏
  • 举报
回复
GetItemCount()返回一直是0?这个我还真没用到,因为页面都是自己InsertItem()插进去的,多少页,外面自己保存过了。这个帮不了你。
至于GetNextDlgTabItem()似乎是取下一个按了Tab键以后,焦点移动过去的控件的指针。不是你想到的取Tab页面的指针。使用函数错误。
最后,VC下面Tab控件不管你有几页,实际上都是同一个HWND。一般来说VC下面用Tab实现换页比较常用的方法是嵌入几个子窗口,根据当前所处的页面(GetCurSel()返回值)决定哪一页可见,其它页不可见。
GGYYBOY 2007-03-16
  • 打赏
  • 举报
回复
谢谢了 我是第一次接触Tab属性页,我想我可能是把一些概念搞错了,当时用这些函数时,也只是看了下MSDN 全是英文,不完全理解。
我试了下GetItemCount(),w_anthony() 说的确实是对的,至于GetNextDlgTabItem我还不太清楚,谢谢两位了,我自己再去照照资料
w_anthony 2007-03-16
  • 打赏
  • 举报
回复
((CTabCtrl*)GetDlgItem(Tab控件ID))->GetItemCount()绝对是页数,Tab应该没有第几个属性页的概念,所以LZ的CTabCtrl*我想没有找错,不过LZ的你的页数是怎么插入的?有用InsertItem插入页数吗?是不是根本就还没插入,所以结果是0?
至于CTabCtrl::GetItem()只能取得Tab上面的标签的一些信息,不能取到LZ要的HWND。
LZ你说说你到底想要干什么吧,我个人感觉你把Tab控件的使用方法完全误解了,如果继续按照你的思路下去,是完成不了任务的。
菜牛 2007-03-16
  • 打赏
  • 举报
回复
你需要对CTabCtrl对象调用GetItemCount()函数,而不是什么生造出来的什么第一个属性页。
而GetNextDlgTabItem函数根本和Tab页无关,指的是窗口上Tab按键顺序。
CTabCtrl::GetItemCount()
CTabCtrl::GetItem()
GGYYBOY 2007-03-15
  • 打赏
  • 举报
回复
自己顶哈

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

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

试试用AI创作助手写篇文章吧