重金悬赏:如何禁用CTabCtrl控件中的某一个标签

wcq318 2007-12-26 09:20:50
比如有一个Tab控件,其中有3个标签,在一定情况下,不能让用户点击其他标签,也就是要把另2个标签变灰,codeproject中也找到了一个例子,不过是用WTL作的,看不懂,麻烦哪为大哥有这方面的例子或思路的话帮以下,急用.如果谁有代码的话可以发到我邮箱:wcq318@126.com. 定倾分向送.
...全文
473 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
my_girlf 2007-12-29
  • 打赏
  • 举报
回复
已发,请查收.

给分.

谢谢.
dyw 2007-12-28
  • 打赏
  • 举报
回复
showxier 2007-12-28
  • 打赏
  • 举报
回复
不满足条件,不可切换属性页。
这个可以CTabCtrl的话处理SetCurSel,不让切换就return不执行.
CpropretyPage的话处理OnKillActive,不让切换也就return FALSE;

标签变灰对CTabCtrl来说只有重绘,对CPropretyPage来说简单点,要取得Create这个属性页的CPropretySheet *
用CPropretySheet::Set什么什么(可以动态改变标签字休大小颜色的@_@我忘了)
jameshooo 2007-12-27
  • 打赏
  • 举报
回复
TABCTRL自绘,每个TAB项添加一个属性,根据属性来决定是普通绘制还是用灰色绘制。
在切换时也根据属性来判断,可以在父窗口里处理TCN_SELCHANGING通知消息,通过返回TRUE来阻止切换到目标页面。
datoucaicai 2007-12-27
  • 打赏
  • 举报
回复
或者满足条件的时候删除掉其他的标签
m_ctrltab.DeleteItem(iterm);
...
datoucaicai 2007-12-27
  • 打赏
  • 举报
回复
在你的Tab Selchange函数中:
if(需要一直显示dlg1)
{
m_dlg1.ShowWindow(SW_SHOW); //要显示的标签页
m_dlg2.ShowWindow(SW_HIDE); //隐藏其他标签页
m_dlg3.ShowWindow(SW_HIDE);
...
}
  • 打赏
  • 举报
回复
对呀,像楼上所说的,为什么非要变灰啊?
你在切换的时候,判断一下是否满足需要切换的条件,如果不满足的话,就不切换就好了
taurusboy 2007-12-27
  • 打赏
  • 举报
回复
额,为什么非要变灰啊?我是在程序中始终由一个变量来记录当前TAB显示的页。
然后如果你在切换的时候,判断一下是否满足需要切换的条件,如果不满足的话,就不切换就好了呗。
把m_ctlTab.SetCurSel()给设置成点击以前的页面就好了。起码我是这样实现的。
pzhuyy 2007-12-26
  • 打赏
  • 举报
回复
不懂,帮顶.
mynamelj 2007-12-26
  • 打赏
  • 举报
回复
那就只有得画了

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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