Winapi设置了活动标签控件

时间:2016-04-29 21:47:35

标签: c++ winapi

我正在使用带有C ++的Winapi,我想在关闭标签时做出类似的操作,它会关注最后一个标签。但唯一发生的事情就是我所有的领域"消失",但这实际上不是我的问题。真正的问题是我无法将程序集中在一个标签上。我用了

TabCtrl_SetCurFocus(hTab, TabCtrl_GetItemCount(hTab));
TabCtrl_SetCurSel(hTab, TabCtrl_GetItemCount(hTab));

但没有任何反应,然后我使用函数TabCtrl_HighlightItem但是g ++告诉我它没有被声明,我已经明确地发送了TCM_HIGHLIGHTITEM消息,但它告诉我它也不是&# 39; t宣布。我真的很困惑,要么微软的文档不是最新的,要么我做错了。

1 个答案:

答案 0 :(得分:1)

TabCtrl_SetCurSel从零索引开始,而TabCtrl_GetItemCount返回标签总数。这应该可以解决您的问题:

int lastTab = TabCtrl_GetItemCount(hTab) - 1;
TabCtrl_SetCurSel(hTab, lastTab);

我不确定你的重点是什么意思。如果选项卡控件具有WS_TABSTOP标志,则活动选项卡周围应该有一个焦点矩形。您可能必须按 Alt 键才能看到焦点矩形。但有时这不起作用,例如,如果有一个需要关注的编辑控件。

TabCtrl_SetCurFocusTCS_BUTTONS结合使用。见documentation

如果主题处于活动状态,

TabCtrl_HighlightItem不会执行任何操作。请参阅文档documentation

TabCtrl_HighlightItem可能不会在MinGW中声明(在这种情况下无关紧要)。如果缺少其他声明,您可能希望使用更新的免费编译器,如VS 2015。