|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Авг 27, 2003 17:53:41 · Поправил: Pasha 111 Ничего не понимаю! Уже 3 дня сижу над этой проблемой. Для определения текста элемента TreeView'а делаю так:
// Функция определяет текст элемента
BOOL GetItemText(HWND hWnd, HTREEITEM Item, char *buf, int maxbuf)
{
// Параметры для определения
TVITEM ItemParam;
memset(&ItemParam, 0, sizeof(TVITEM));
ItemParam.mask = TVIF_TEXT; // Пробовал также TVIF_TEXT | TVIF_HANDLE;
ItemParam.cchTextMax = maxbuf;
ItemParam.pszText = buf;
ItemParam.hItem = Item;
// Определяем параметры
return (BOOL)SendMessage(hWnd, TVM_GETITEM, (WPARAM)0, (LPARAM)&ItemParam);
}
Что не так? |
|
|
Дата: Авг 28, 2003 04:54:28 IMHO, всё OK и в самой ф-ции ошибок нет. Отладчик и в бой! Возможно, всё дело в "HTREEITEM Item". hWnd -- точно хендл TreeView? ЗЫ: memset() можно убрать. |
|
|
Дата: Авг 28, 2003 22:24:52 Quantum IMHO, всё OK и в самой ф-ции ошибок нет. Отладчик и в бой! Отладчик пишет все OK. Функция SendMessage() возвращает 0 (что неправильно). Значит дело именно в том, что делаю. Возможно, всё дело в "HTREEITEM Item". Нет, я пишу так:
// Добавляю итем
HTREEITEM Item = (HTREEITEM)SendMessage(...);
// Определяю текст
char buf[1024];
memset(buf, 0, sizeof(buf));
if(!GetItemText(hWnd, Item, buf, sizeof(buf)-1))
{
MessageBox(..., "ОБЛОМ :(", ...);
}
ЗЫ: memset() можно убрать. Я всегда пишу memset(). После 7милетнего опыта программирования на VB привык всегда иметь дело с инициализированными переменными. |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.076 |