День добрый! Есть такой кусок кода (FASM): Код (Text): ;Определение данных: win_name du 'SysListView32',0 base_head db 'Site',0 item_col LV_COLUMN ... ... ;Cоздаю окно ListView invoke InitCommonControls invoke CreateWindowExW,0,win_name,win_name,LVS_ALIGNLEFT+WS_VISIBLE+WS_BORDER+LVS_REPORT+LVS_SORTASCENDING+WS_CHILD,\ 2*OTSTUP+120d,6*OTSTUP+10d*5,400d,140d,[hwnd],IDLIST,[hInstance_ph],0 ;Создаю колонку: MOV [item_col.mask],LVCF_FMT+LVCF_TEXT+LVCF_WIDTH MOV [item_col.fmt],LVCFMT_CENTER MOV [item_col.cx],70d MOV [item_col.pszText],base_head ;base_head - адрес строки invoke SendDlgItemMessageW, [hwnd],IDLIST,LVM_INSERTCOLUMN,0,item_col ;SendDlgItemMessageW использую т.к. ListView является дочерним окном диалогового Parent-а Создается все замечательно, но есть одно "Но". Если строка по адресу base_head задана в формате ASCIIZ то все нормально. Если задать ее в формате Unicode, то в названии колонки будет выведен только первый символ (что вообщем-то понятно). Непонятно только, как заставить ListView выводить Unicode строки? P.S. Понимаю конечно, что вопрос детский, но ответа я найти не смог. P.P.S. Поиск юзал.
LVCF_TEXT - ? есть другие константы для листвьева? типа LVCF_RTF ? (должна быть, я видел листвьевы с символами уникода...) , LVCF_UNICOD ? - в обычном текстовом редакторе я делал уникод, а как забыл
Нет, в переменной mask, структуры LV_COLUMN только константы приведенные ниже. Да и переменная mask применяется только для того, что бы указать какие дополнительные параметры структуры LV_COLUMN использовать. В данном случае LVCF_TEXT указывает, что при создании колонки необходимо брать текст, указатель на который находится в pszText Выдержка из WIN32.HLP:
Та оно то понятно, но это я держу на крайний случай... Хотелось бы в Unicode. Я просто думаю может где-то я туплю и достаточно где-то константу какую-то добавить, чтоб Unicode вывести. Или ListView не подерживает стандартными методоми Unicode?
Таки тупил, все действительно решилось (как-то не допер, что и message-ы могут быть уникод). Спасибо огромное.