我正在尝试进行所有者绘制选项卡控件。在 DRAWITEMSTRUCT 结构中,我得到了一些关于正在绘制的选项卡项的信息,比如它的矩形、hDC、hwnd,但是我找不到它在创建时给出的文本(LPTSTR TCITEM 结构的 LPTSTR pszText 成员)。
当想要进行所有者绘制时如何获取选项卡项的文本?
通用方式记录在SDK 文章中用于选项卡控件:
默认情况下,DRAWITEMSTRUCT 的 itemData 成员包含 TCITEM 结构的 lParam 成员的值。但是,如果您更改每个选项卡的应用程序定义的数据量,itemData 会改为包含数据的地址。您可以使用 TCM_SETITEMEXTRA 消息更改每个选项卡的应用程序定义数据量。
因此,您始终可以在您添加的 TCITEM 上挂一个指针,然后通过 itemData 将其取回。这足以获取有关选项卡的任何信息,包括您自己维护的数据。
如果您只需要文本,则实际上没有必要。您可以简单地使用 TCM_GETITEM 来获取 TCITEM。传递 DRAWITEMSTRUCT.itemID。