Страница: 1 |
Уважаемые, такая вот проблема: одному из элементов ListView пытаюсь присвоить греческую букву Омега таким образом: Set lfs = lf.ListSubItems.Add(, , ChrW(&H3A9)) с = AscW(lf.ListSubItems(5)) Греческий язык в системе установлен. Подскажите, плиз, что тут можно сделать ?
У меня большое подозрение, что стандартный ListView не поддерживает Юникод. Так ли это ? Если да - какой контрол можно посоветовать взамен ? В ApiViewer 2003 есть сообщение и для Анси и для Юникода. Private Const LVM_SETITEMTEXTA = (LVM_FIRST + 46) Private Const LVM_SETITEMTEXTW = (LVM_FIRST + 116) Попробуй послать ему второе. А чему равно LVM_FIRST ? Что то я его не нашел... Приведи пример полностью, если не сложно. Я делаю так: SendMessage List.hwnd, 116, 0, 0 Ничего не меняется ... Нашел, что LVM_FIRST =&h1000 Делаю так: SendMessage List.hwnd, &h1000+116, 0, 0 For i = &H380 To &H430 Русские буквы водятся нормально, а греческие - ни в какую... Интересная вещь: в API Viewer нет LVM_SETITEMTEXT, а в MSDN его с A и W Но ты шлешь сообщение абсолютно неправильно - нет параметров. О параметрах можно прочитать в MSDN: LVM_SETITEMTEXT Message -------------------------------------------------------------------------------- Changes the text of a list-view item or subitem. You can send this message explicitly or by using the ListView_SetItemText macro. Syntax To send this message, call the SendMessage function as follows. lResult = SendMessage( // returns LRESULT in lResult (HWND) hWndControl, // handle to destination control (UINT) LVM_SETITEMTEXT, // message ID (WPARAM) wParam, // = (WPARAM) (int) i; (LPARAM) lParam // = (LPARAM) (LPLVITEM) pitem; ); Parameters i Index of the list-view item. pitem Pointer to an LVITEM structure. The iSubItem member is the index of the subitem, or it can be zero to set the item label. The pszText member is the address of a null-terminated string containing the new text; it can also be NULL. The pszText member can also be LPSTR_TEXTCALLBACK to indicate a callback item for which the parent window stores the text. In this case, the list-view control sends the parent an LVN_GETDISPINFO notification message when it needs the text. Return Value If you send this message explicitly, it returns TRUE if successful or FALSE otherwise. Message Information Header commctrl.h Minimum operating systems Windows NT 3.51, Windows 95 Спасибо большое, но все равно ничего не получается. Подскажите, пожалуйста, как решить такую задачу: нужно создать ListView с двумя колонками. В первой - строки от 380 до 42F (16-ричные), во второй - их символьное представление (греческие и русские буквы, юникод). Страница: 1 |
Вопрос: Отображение греческих букв в элементе ListView
Добавлено: 24.03.04 14:02
Автор вопроса: avkiev | ICQ: 226072
Переменная с получает значение 3F, то есть вопросительный знак. Русские и прибалтийские поддиапазоны юникода записываются нормально, а вот греческий - ни в какую.
Ответы
Всего ответов: 6
Номер ответа: 1
Автор ответа:
avkiev
ICQ: 226072
Вопросов: 48
Ответов: 107
Профиль | | #1
Добавлено: 24.03.04 18:42
Номер ответа: 2
Автор ответа:
@CyRax PTR
ICQ: 204447456
Вопросов: 28
Ответов: 664
Web-сайт:
Профиль | | #2
Добавлено: 28.03.04 16:28
Номер ответа: 3
Автор ответа:
avkiev
ICQ: 226072
Вопросов: 48
Ответов: 107
Профиль | | #3
Добавлено: 29.03.04 16:19
Номер ответа: 4
Автор ответа:
avkiev
ICQ: 226072
Вопросов: 48
Ответов: 107
Профиль | | #4
Добавлено: 29.03.04 16:44
Set lf = List.ListItems.Add(, , Hex(i))
Set lfs = lf.ListSubItems.Add(, , ChrW(i))
Next i
Номер ответа: 5
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #5
Добавлено: 30.03.04 01:50
Номер ответа: 6
Автор ответа:
avkiev
ICQ: 226072
Вопросов: 48
Ответов: 107
Профиль | | #6
Добавлено: 30.03.04 14:28