Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];

Вниз

SysListView32 и unicode   Найти похожие ветки 

 
IncubuS   (2004-07-02 15:25) [0]

Как заставить ListView понимать unicode? Вот попробовал простенькую программку написать, ничего не выходит. Добавляет только первые буквы. Пишу вместо WideString просто String, итемы добавляется. :(


program Test;

uses
 Windows, CommCtrl, Messages;

procedure InitListView(lvHandle: HWND);
const
 stColumns: array [0..1] of WideString = ("Status", "Filename");
var
 Column: TLVColumnW;
 I: Integer;
begin
 ListView_SetExtendedListViewStyle(lvHandle, LVS_EX_GRIDLINES
   or LVS_EX_FULLROWSELECT);
 with Column do begin
   mask := LVCF_FMT or LVCF_WIDTH or LVCF_TEXT;
   fmt := LVCFMT_LEFT;
   cx := 100
 end;
 for I := 0 to High(stColumns) do begin
   Column.pszText := PWideChar(stColumns[I]);
   ListView_InsertColumnW(lvHandle, I, Column)
 end
end;

procedure AddItem(lvHandle: HWND; const Caption, SubItem: WideString; ImgIndex: Integer);
var
 Item: TLVItemW;
 Index: Integer;
begin
 with Item do begin
   mask := LVIF_TEXT or LVIF_IMAGE;
   pszText := PWideChar(Caption);
   iImage := ImgIndex;
   iSubItem := 0
 end;
 Index := ListView_InsertItemW(lvHandle, Item);
 if Index <> - 1 then
   ListView_SetItemTextW(lvHandle, Index, 1, PWideChar(SubItem));
end;

function OptFunc(Dialog: HWND; Msg: UINT; wParam: WParam; lParam: LParam): Bool; stdcall;
var
 lvHandle: HWND;
 I: Integer;
begin
 Result := True;
 case Msg of
   WM_INITDIALOG:
     begin
       lvHandle := GetDlgItem(Dialog, 101);
       InitListView(lvHandle);
       ListView_SetUnicodeFormat(lvHandle, True);
       for I := 1 to 10 do
         AddItem(lvHandle, "Test", "c:\1.exe", I);
       Exit
     end;
   WM_COMMAND:
     case LoWord(WParam) of
       ID_OK:
         begin
           EndDialog(Dialog, 1);
           Exit
         end;
       ID_CANCEL:
         begin
           EndDialog(Dialog, 2);
           Exit
         end
     end
   end;
 Result := False
end;

{$R *.res}

begin
 InitCommonControls;
 DialogBoxW(hInstance, "MSTOPT_WINDOW", 0, @OptFunc)
end.


 
IncubuS   (2004-07-02 16:37) [1]

Забыл кинуть rc-файл, хотя думаю он не очень нужен.


MSTOPT_WINDOW DIALOGEX 0, 0, 294, 122
STYLE DS_SETFONT | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_MAXIMIZEBOX |
   WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
EXSTYLE WS_EX_OVERLAPPEDWINDOW
FONT 8, "MS Sans Serif"
{
   DEFPUSHBUTTON   "OK",IDOK,237,7,50,14
   PUSHBUTTON      "Cancel",IDCANCEL,237,24,50,14
   CONTROL         "",101,"SysListView32",LVS_REPORT | LVS_EDITLABELS | LVS_ALIGNLEFT | WS_BORDER | WS_TABSTOP,23,24,158,77
}



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.034 c
3-1089804217
Sliski Slimak
2004-07-14 15:23
2004.08.15
Почему летят индексы?


6-1087144256
lena19
2004-06-13 20:30
2004.08.15
NetShareGetInfo !! FOR WINXP !!


14-1090917906
TUser
2004-07-27 12:45
2004.08.15
Методы оптимизации


3-1090407050
Алексей
2004-07-21 14:50
2004.08.15
Вопрос по сортировке данных


4-1088691398
BillyJeans
2004-07-01 18:16
2004.08.15
Форма и её контролы...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский