【问题标题】:owner-draw tab control - text of a tab item所有者绘制选项卡控件 - 选项卡项的文本
【发布时间】:2013-04-10 14:07:51
【问题描述】:

我正在尝试进行所有者绘制选项卡控制。在 DRAWITEMSTRUCT 结构中,我获得了有关正在绘制的选项卡项的一些信息,例如它的矩形、hDC、hwnd,但是我找不到它在创建时给出的文本(LPTSTR TCITEM 结构的 LPTSTR pszText 成员)。

当想要进行所有者绘制时如何获取选项卡项的文本?

【问题讨论】:

  • 您是否尝试过使用 hwnd 的 GetWindowText?
  • 但是我需要的是一个标签项的文本,而一个标签项没有hwnd。它是选项卡控件有它的 hwnd。

标签: c winapi


【解决方案1】:

标签控件的通用方式记录在SDK article 中:

默认情况下,DRAWITEMSTRUCT 的 itemData 成员包含 TCITEM 结构的 lParam 成员的值。但是,如果您更改每个选项卡的应用程序定义的数据量,itemData 将包含数据的地址。您可以使用 TCM_SETITEMEXTRA 消息更改每个选项卡的应用程序定义数据量。

因此,您始终可以在添加的 TCITEM 上挂一个指针,然后通过 itemData 将其取回。这足以获取关于标签的任何信息,包括您自己维护的数据。

如果您只需要文本,则实际上没有必要。您可以简单地使用 TCM_GETITEM 来获取 TCITEM。传递 DRAWITEMSTRUCT.itemID。

【讨论】:

    猜你喜欢
    • 2011-10-31
    • 2011-10-24
    • 2013-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多