Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.15;
Скачать: CL | DM;

Вниз

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 вся ветка

Текущий архив: 2004.08.15;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.038 c
3-1090234927
Spivi
2004-07-19 15:02
2004.08.15
компоненты, у которых есть свойство DataSource


6-1087129846
Кодер
2004-06-13 16:30
2004.08.15
TServerSocket и TClientSocket


14-1091177441
Vovchik_A
2004-07-30 12:50
2004.08.15
Вы - сисадмин , если :


1-1091547036
Hyboid
2004-08-03 19:30
2004.08.15
Перехват клавиатуры


1-1090995205
Ven
2004-07-28 10:13
2004.08.15
CharToOem