2010-06-27 52 views
0

我想從這樣的標籤控件獲取文本:從標籤控制項獲得文本未能

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

設置文本時,cchTextMax被忽略。

獲取文本時,您需要提供自己的緩衝區並相應地設置cchTextMax。 (請注意,當消息返回時,您需要使用itm.pszText指針,而不是您自己的緩衝區,因爲控件有時會將pszText成員更改爲指向其內部緩衝區)

+0

不知道我需要提供我的自己的緩衝區,謝謝 – jmasterx 2010-06-27 03:11:15