Форум: "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.043 c