从选项卡控件项获取文本失败

时间:2010-06-27 02:10:46

标签: c++ c winapi

我正试图从这样的标签控件中获取文本:

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);
}

为什么不按照我的要求返回文本?

由于

1 个答案:

答案 0 :(得分:1)

设置文本时,将忽略cchTextMax。

获取文本时,需要提供自己的缓冲区并相应地设置cchTextMax。 (请注意,当消息返回时,您需要使用itm.pszText指针而不是您自己的缓冲区,因为控件有时会将pszText成员更改为指向其内部缓冲区)