自绘CTabCtrl控件的属性设置问题

liudonghai11 2017-08-08 06:56:28
捣鼓一波MFC的CTabCtlr控件重载,有几点问题不是很明白,望各位指教,主要是在设置标签的属性上,我想通过属性设置,让tabpage不改变的情况下其他标签能够高亮。
然后采用SetItem进行属性设置,但是没有效果,其TCITEM参数设置为m_Tcitem2.mask = TCIF_STATE;m_Tcitem2.dwState = TCIS_HIGHLIGHTED;然后 用GetItem进行属性获取,才发现这个iTem的属性值发现没有改变。也就是设置没有生效,为什么?
还有一点就是TCITEM的dwState 值只有两个,但是DrawItem里面LPDRAWITEMSTRUCT的itemState的值却很多,为什么两者不匹配。
还有一个就是CTabCtrl有一个SetCurFocus方法,看他描述和直接点击一个标签是不一致的,但是程序的效果就是直接跳转到指定的item了,和直接点击效果一直,为什么?
请前辈指教,谢谢。
...全文
200 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zgl7903 2017-08-10
  • 打赏
  • 举报
回复
如果有兴趣, 可以设置断点, 单步调入进去 慢慢分析, 但是Windows遇到核心代码的时候 都是看不到源码的,顶多提供一些调试符号,如果汇编能力很强 那也没问题
zgl7903 2017-08-09
  • 打赏
  • 举报
回复
CTabCtrl 激活那个页 使用 m_TabCtrl.SetCurSel( iPage )
liudonghai11 2017-08-09
  • 打赏
  • 举报
回复
引用 1 楼 zgl7903 的回复:
参考我的 博客代码 自绘CTabCtrl控件的实现
看过了,老哥,就是有这几个地方不明白啊
liudonghai11 2017-08-09
  • 打赏
  • 举报
回复
引用 5 楼 zgl7903 的回复:
那反正是自绘的, 随便怎么弄个标志什么的, 在 DrawItem 的时候调整颜色即可
好吧,这个我之前还真没想到,很尴尬,但是本着求知的精神,我还是想知道为啥这样不行,代码如下: INT iii = 0; INT ii = 0; iii= m_Tab.SetItemState(2, TCIF_STATE, TCIS_HIGHLIGHTED); ii = m_Tab.GetItemState(2, TCIF_STATE); 调试结果显示iii=1,执行成功,但是ii等于0,我认为至少刚刚设置的TCIS_HIGHLIGHTED这个属性值应该有啊,可是他就是0。
zgl7903 2017-08-09
  • 打赏
  • 举报
回复
那反正是自绘的, 随便怎么弄个标志什么的, 在 DrawItem 的时候调整颜色即可
liudonghai11 2017-08-09
  • 打赏
  • 举报
回复
引用 3 楼 zgl7903 的回复:
CTabCtrl 激活那个页 使用 m_TabCtrl.SetCurSel( iPage )
这个不是设置当前在那个页面吗,其实我就是想设置一个高亮的显示,但是这一页并不在当前显示。
zgl7903 2017-08-08
  • 打赏
  • 举报
回复
参考我的 博客代码 自绘CTabCtrl控件的实现

15,978

社区成员

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

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