![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| UnderFelixAbove |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 6.7.2007 Где: г. Астрахань Репутация: нет Всего: нет |
Имеется следующий фрагмент кода, с помощью которого определяется строка в заголовке ListView
Результат будет хранится в поле ptzText и lpBuffer соответствено. Поле cchTextMax задает длину строки. Если в заголовке хранится очень длинная строка, то в ответ будет положена обрезанная строка по длине cchTextMax, если в заголовке - маленькие строки, то зачем выделять больше памяти чем нужно? Отсюда вопрос: Как можно заранее узнать длину этой строки, чтобы выделить памяти ровно столько сколько нужно? Заранее спасибо! |
|||
|
||||
| Estranged |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 158 Регистрация: 30.8.2010 Репутация: 3 Всего: 3 |
pszText
A pointer to an item string. If the text is being retrieved from the control, this member must be initialized to point to a character buffer. If this member is set to LPSTR_TEXTCALLBACK, the control will request text information for this item by sending an HDN_GETDISPINFO notification message. Note that although the header control allows a string of any length to be stored as item text, only the first 260 TCHARs are displayed. Нотариально заверенные данные из описания HDITEM структуры. |
|||
|
||||
| UnderFelixAbove |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 6.7.2007 Где: г. Астрахань Репутация: нет Всего: нет |
Можно немного поподробнее. Как это может помочь определить точную длину строки. Или этого сделать нельзя? |
|||
|
||||
| Estranged |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 158 Регистрация: 30.8.2010 Репутация: 3 Всего: 3 |
HD_ITEM hdi;
hdi.mask = HDI_TEXT; hdi.pszText = LPSTR_TEXTCALLBACK; hdi.cchTextMax = 0; Header_GetItem(m_hWndHeader,nCol,(LPHDITEM)&hdi); А потом в обработке сообщений через WM_NOTIFY получить HDN_GETDISPINFO: { LPNMHDDISPINFO pDispInfo = (LPNMHDDISPINFO) lParam; pDispInfo->cchTextMax; вот тут размер текста } |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |