我正试图从这样的标签控件中获取文本:
TCITEM itm;
itm.mask = TCIF_TEXT;
TabCtrl_GetItem(engineGL.controls.MainGlTab.MainTabHwnd,i,&itm);
但结构的psztext部分返回一个错误的指针(0xcccccccccc)。
我创建了这样的标签:
void OGLMAINTAB::AddTab( char *name )
{
TCITEM itm;
itm.cchTextMax = 30;
itm.pszText = name;
itm.mask = TCIF_TEXT;
int numitems = TabCtrl_GetItemCount(MainTabHwnd);
SendMessage(MainTabHwnd,TCM_INSERTITEM,numitems,(LPARAM)&itm);
}
为什么不按照我的要求返回文本?
由于
答案 0 :(得分:1)
设置文本时,将忽略cchTextMax。
获取文本时,需要提供自己的缓冲区并相应地设置cchTextMax。 (请注意,当消息返回时,您需要使用itm.pszText指针而不是您自己的缓冲区,因为控件有时会将pszText成员更改为指向其内部缓冲区)