比如有一个Tab控件,其中有3个标签,在一定情况下,不能让用户点击其他标签,也就是要把另2个标签变灰,codeproject中也找到了一个例子,不过是用WTL作的,看不懂,麻烦哪为大哥有这方面的例子或思路的话帮以下,急用.如果谁有代码的话可以发到我. 定倾分向送.
解决方案 »
- 请问CArchive类能读写struct类型变量吗?
- !难-ListView多选的控制
- 如何让程序在登录前运行?
- 请问:在基于CSrollView为基类的程序中,使用CRectTracker(橡皮筋类),在视图出现滚动条时,CRectTracker不能正常显示?????
- 大家帮我评论一下北京希望电子出版社出版的VC++6.0技术内幕第五版译的怎样?
- SetWindowsHookEx如何获得指定线程的ID
- 重出江湖——进来拿来分!
- 急,急,非常急的问题————数据加密方面的
- 急!用到ADO安装打包需要哪几个文件???
- ASSERT和if不一致?
- 重叠I/O 套接字问题
- 我用HOOK 进行DLL注入为什么发送一次消息执行多次,绝对不是所谓的键盘按下弹起之类的!
然后如果你在切换的时候,判断一下是否满足需要切换的条件,如果不满足的话,就不切换就好了呗。
把m_ctlTab.SetCurSel()给设置成点击以前的页面就好了。起码我是这样实现的。
if(需要一直显示dlg1)
{
m_dlg1.ShowWindow(SW_SHOW); //要显示的标签页
m_dlg2.ShowWindow(SW_HIDE); //隐藏其他标签页
m_dlg3.ShowWindow(SW_HIDE);
...
}
m_ctrltab.DeleteItem(iterm);
...
在切换时也根据属性来判断,可以在父窗口里处理TCN_SELCHANGING通知消息,通过返回TRUE来阻止切换到目标页面。
这个可以CTabCtrl的话处理SetCurSel,不让切换就return不执行.
CpropretyPage的话处理OnKillActive,不让切换也就return FALSE;标签变灰对CTabCtrl来说只有重绘,对CPropretyPage来说简单点,要取得Create这个属性页的CPropretySheet *
用CPropretySheet::Set什么什么(可以动态改变标签字休大小颜色的@_@我忘了)
http://www.microsoft.com/msj/0898/c0898.aspx
http://www.microsoft.com/msj/0398/c0398.aspx