TabCtrl加亮当前TAB的问题(所有家当,19分!)

111222 2001-02-10 12:30:00
我先

for (int t = 0; t < theWindowTab.GetItemCount(); t++)
{
TC_ITEM ti;
ti.mask = TCIF_PARAM;
theWindowTab.GetItem(t, &ti);
if (ti.lParam == (long) pView)
{
theWindowTab.SetCurSel(t);
theWindowTab.HighlightItem(t,FALSE);
theWindowTab.Invalidate();
break;
}
}


把所有的Tab的highlight设置为FALSE

然后
int l=theWindowTab.GetCurSel();
theWindowTab.HighlightItem(l,TRUE);

结果所有的TAB都是加亮的兰色!!!!!!!!!!1


怎么搬啊???//
...全文
233 20 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
songshi 2001-02-22
  • 打赏
  • 举报
回复
111222兄:

AddPage(...)
{
//先将当前的VIEW的HIGHLIGHT关掉
theWindowTab.Highlight(theWindowTab.GetCurSel(), FALSE);

//用你的代码添加一个VIEW
....

//设置新的VIEW为当前VIEW
theWindowTab.SetCurSel( /*index*/ );

//再将新的VIEW设置HIGHLIGHT属性
theWindowTab.Highlight(theWindowTab.GetCurSel(), TRUE);
}

你试试看这样行不行,如果可以就给我加分鼓励一下如何?^_^
vcmfc 2001-02-21
  • 打赏
  • 举报
回复
兄弟呀!,I am Very Sorry!,最近心的焦头!,所以没有时间再帮你试!,确实很对不起呀!,你就当作我在放屁吧!
verybigbug 2001-02-21
  • 打赏
  • 举报
回复
for (int t = 0; t < theWindowTab.GetItemCount(); t++)
{
TC_ITEM ti;
ti.mask = TCIF_PARAM;
theWindowTab.GetItem(t, &ti);
if (ti.lParam == (long) pView)

// // ???? 是不是pView的值不对呀?
建议,判断不要,break也不要。

{
theWindowTab.SetCurSel(t);
theWindowTab.HighlightItem(t,FALSE);
theWindowTab.Invalidate();
break;
}
}


把所有的Tab的highlight设置为FALSE

然后
int l=theWindowTab.GetCurSel();
theWindowTab.HighlightItem(l,TRUE);

结果所有的TAB都是加亮的兰色!!!!!!!!!!1


怎么搬啊???//
111222 2001-02-21
  • 打赏
  • 举报
回复
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
111222 2001-02-21
  • 打赏
  • 举报
回复
songshi兄:
我又按照你的方式实现了。早不知道有这个消息。
这个方法好在,不用我那样遍利所有的窗口的TAB把HIGHLIGHT设为FALSE,我那样有TAB闪烁的感觉。

但是这个方法有个缺陷,新建窗口的时候会把新建的窗口设置成当前的View,新建的不是蓝色。
我尝试在app::OnFileNew()里发送CTN_CHANGE消息,SendMessage(CTN_CHANGE);
可是并没有效果,好象发送这个消息还需要一个参数.(lParam)pNMHDR

具体的怎么实现啊?
songshi 2001-02-21
  • 打赏
  • 举报
回复
11122兄,不知小弟的方法是不是合用.

在theWindowTab中添加各TAB页面之后运行:
theWindowTab.HighlightItem(1,TRUE);
theWindowTab.SetCurSel(1); //将页面1设置为当前页,并使其Hightlight

用ClassWizard添加theWindowTab的TCN_SELCHANGING和TCN_SELCHANGE的响应函数:
void CYourClass::OnSelchangingTesttab(NMHDR* pNMHDR, LRESULT* pResult)
{
int l = theWindowTab.GetCurSel();
theWindowTab.HighlightItem(l, FALSE);

*pResult = 0;
}

void CYourClass::OnSelchangeTesttab(NMHDR* pNMHDR, LRESULT* pResult)
{
int l = theWindowTab.GetCurSel();
theWindowTab.HighlightItem(l, TRUE);

*pResult = 0;
}

然后就达到你要的效果了,你看是不是合用.
111222 2001-02-21
  • 打赏
  • 举报
回复
vcmfc兄弟,没关系的,刚才照着verybigbug的思路自己稍稍一改就成功了,多谢!
111222 2001-02-21
  • 打赏
  • 举报
回复
vcmfc兄弟,没关系的,刚才照着verybigbug的思路自己稍稍一改就成功了,多谢!
111222 2001-02-19
  • 打赏
  • 举报
回复
aaaaaaaa~~~啊~~~~~~~~~
111222 2001-02-19
  • 打赏
  • 举报
回复
111222 2001-02-19
  • 打赏
  • 举报
回复
一个多月了还在这搁着,我加分
111222 2001-02-17
  • 打赏
  • 举报
回复
????????
111222 2001-02-11
  • 打赏
  • 举报
回复
CTabCtrl theWindowTab;
111222 2001-02-11
  • 打赏
  • 举报
回复
我那是个多文档的程序,
windowtab是各个子窗口相互切换用的。
我想让当前选中的窗口的tab显示为兰色。

目前的代码弄的所有的都是兰色。

111222 2001-02-11
  • 打赏
  • 举报
回复
不对!




111222@0451.com

111222 2001-02-11
  • 打赏
  • 举报
回复
对!!!!
vcmfc 2001-02-11
  • 打赏
  • 举报
回复
俺来帮你试一下,下周二给你答案,你的Mail:mailto:111222@0451.com对吗?
111222 2001-02-11
  • 打赏
  • 举报
回复
寂静的夜里我睡不着,
因为我满脑子是问号,
高手高手我找不到,
谁能解决问题让我睡着觉?
bzshow 2001-02-11
  • 打赏
  • 举报
回复
這么晚還不睡呀,我也關注。
111222 2001-02-11
  • 打赏
  • 举报
回复
关注!

16,548

社区成员

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

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

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