Форум: "WinAPI";
Текущий архив: 2010.01.31;
Скачать: [xml.tar.bz2];
ВнизДерево файлов на winapi Найти похожие ветки
← →
Ort (2008-11-27 10:05) [0]вопшем пишу на чистом winapi сабж...столкнулся с проблемой...
1 - Как добавить столбцы в listview
2 - Как добавить итемы в listview
Сильно не ругайте я савсем нуб, с winapi буквально неделю знаком
← →
Palladin © (2008-11-27 10:09) [1]начал писать на winapi начни и msdn любить, там все прекрасно описано
← →
clickmaker © (2008-11-27 11:26) [2]а почему listview, а не treeview?
← →
tesseract © (2008-11-27 12:20) [3]
> Сильно не ругайте я савсем нуб, с winapi буквально неделю
> знаком
Придеться его усиленно курить + понимать что есть рекурсия.
← →
Ort (2008-11-27 15:41) [4]
> а почему listview, а не treeview?
патамучто надо чтоб в итоге получилось что наподобии панельки фара\тоталкамандера...
мсдн читал не понял...понял только что надо описать структуру столбца, юзать LV_Column и функцию insertcolumn...но как хз :(
← →
Ort (2008-11-27 15:59) [5]ну это я про столбцы имел ввиду...народ помогите хотяб с этим
← →
clickmaker © (2008-11-27 16:10) [6]> понял только что надо описать структуру столбца, юзать LV_Column
> и функцию insertcolumn
уже хорошо.
а что именно непонятно?
← →
Eraser © (2008-11-27 16:36) [7]> Ort (27.11.08 10:05)
> вопшем пишу на чистом winapi сабж...столкнулся с проблемой...
в чем причина выбора "чистого winapi", чем TListView плох?
← →
Ort (2008-11-27 17:33) [8]как и где описать структуру и собствена как использовать инсерколумн
> в чем причина выбора "чистого winapi", чем TListView плох?
по заданию низя...только winapi
← →
clickmaker © (2008-11-27 17:54) [9]> как и где описать структуру
var
lvc: LV_COLUMN;
> как использовать инсерколумн
ListView_InsertColumn(ListViewHandle, Index, lvc);
← →
Ort (2008-11-27 18:37) [10]
> ListView_InsertColumn(ListViewHandle, Index, lvc);
эээ...это оч похожа на метод обьекта листвью, винапи не знает обьктов у меня листвью типа hwnd
← →
clickmaker © (2008-11-27 18:41) [11]> эээ...это оч похожа на метод
а хоть попробовал? похоже... Не в курсе, каким символом методы от объекта отделяются?
← →
Ort (2008-11-27 19:40) [12]точкой вроде :[ сорри шас папробую
← →
Ort (2008-11-27 19:46) [13]не добавилосб
описал в варе переменую...
вобшем вот кусок кода создаю лист вью и патом вызваю инсерколумнListView1 := CreateWindowEx(
WS_EX_CLIENTEDGE,
WC_LISTVIEW,
nil,
WS_CHILD or WS_VISIBLE or LVS_ICON or LVS_SINGLESEL,
5, 40, 465, 465, wnd, 0, hInstance, nil);
Font := GetStockObject( ANSI_FIXED_FONT );
SendMessage(ListView1,WM_SETFONT, Font, 0);
ListView_InsertColumn(Listview1, 1, lvc);
← →
Eraser © (2008-11-27 20:25) [14]> [8] Ort (27.11.08 17:33)
> по заданию низя...только winapi
ok, но кто мешает посмотреть, как нужный функционал реализован в VCL? все ж с исходниками поставляется. т.о. все задание сводится к копированию кода из VCL )
← →
Ort (2008-11-27 21:29) [15]Eraser
это как?
← →
Eraser © (2008-11-27 23:06) [16]> [15] Ort (27.11.08 21:29)
> это как?
очень просто.
вопрос:
> Как добавить итемы в listview
ответ: начинаешь смотреть реализацию добавления, начиная с метода TListItems.Add... путем перехода по нескольким "ссылкам" (клик мышью по идентификатору, удерживая нажатый ctrl) приходим к тому, что вызывается API функция SendMessage(hWnd, LVM_INSERTITEM, 0, Longint(@pItem).
и т.д.
← →
Ort (2008-11-28 10:45) [17]
> Ort (27.11.08 19:46) [13]
> не добавилосб описал в варе переменую...вобшем вот кусок
> кода создаю лист вью и патом вызваю инсерколумн ListView1
> := CreateWindowEx( WS_EX_CLIENTEDGE, WC_LISTVIEW,
> nil, WS_CHILD or WS_VISIBLE or LVS_ICON or LVS_SINGLESEL,
> 5, 40, 465, 465, wnd, 0, hInstance, nil); Font :=
> GetStockObject( ANSI_FIXED_FONT ); SendMessage(ListView1,
> WM_SETFONT, Font, 0); ListView_InsertColumn(Listview1,
> 1, lvc);
мне пока это нужно
← →
clickmaker © (2008-11-28 11:01) [18]> ListView_InsertColumn(Listview1, 1, lvc);
неплохо бы еще поля lvc заполнить
да и индексы начинаются с 0, а не с 1
← →
Ort (2008-11-28 11:24) [19]
> clickmaker
в точку...вот как иих заполнять я не нашел :[
← →
clickmaker © (2008-11-28 11:32) [20]и еще
со стилем LVS_ICON колонки смысла не имеют. Нужен LVS_REPORT
а что с заполнением не понятно? MSDN или Win32 reference читал?
← →
Ort (2008-11-28 11:43) [21]уряя калонка саздалась)))
> clickmaker
Пасиб огромное!! ты оч крут!
мсдн читал я там мало что понимаю синтаксис мне непонятен...если не сложно можешь сдесь обеснить :[
← →
clickmaker © (2008-11-28 12:01) [22]mask - здесь перечисляешь через or, что ты хочешь указать для колонки. Обычно используют LVCF_TEXT - текст заголовка, LVCF_FMT - для выравнивания в основном, LVCF_SUBITEM - грубо говоря, индекс колонки.
fmt - если указал LVCF_FMT, то здесь можно выравнять текст
cx - ширина в пикселах, если указал LVCF_WIDTH
pszText - собственно текст. Должен ссылаться на переменную-строку в куче (не локальную). Например pszText := PChar(Headers[i]), где Headers - array of string.
cchTextMax - длина текста
iSubItem - индекс. Обычно соответствует индексу колонки
iImage - индекс в имиджлисте, если таковой прицеплен к заголовку
iOrder - порядок колонки. Может отличаться от индекса, если юзер перетащил колонку
Это был мой первый и последний перевод MSDN. Дальше сам думай
← →
Ort (2008-11-28 12:24) [23]Оки..пасиб еше раз!
← →
Ort (2008-11-28 12:49) [24]
> pszText - собственно текст. Должен ссылаться на переменную-
> строку в куче (не локальную). Например pszText := PChar(Headers[i]),
> где Headers - array of string.
это текст заголовка или всей колонки...просто я не описывал ее никак и все норм создалосьListView1 := CreateWindowEx(
WS_EX_CLIENTEDGE,
WC_LISTVIEW,
nil,
WS_CHILD or WS_VISIBLE or LVS_REPORT or LVS_SINGLESEL,
5, 40, 460, 465, wnd, 0, hInstance, nil);
Font := GetStockObject( ANSI_FIXED_FONT );
SendMessage(ListView1,WM_SETFONT, Font, 0);
lvc.mask := (LVCF_WIDTH or LVCF_TEXT or LVCF_SUBITEM);
lvc.cx := 225;
lvc.fmt := LVCFMT_LEFT;
lvc.iSubItem := 0;
lvc.pszText :=("File Name");
ListView_InsertColumn(Listview1, 0, lvc);
lvc.pszText :=("Size");
ListView_InsertColumn(Listview1, 1, lvc);
← →
Ort (2008-11-28 12:54) [25]
> это текст заголовка или всей колонки
чорт какуюто фигню спррасил))) имел ввиду обязательно ее описывать?
← →
clickmaker © (2008-11-28 12:55) [26]> все норм создалось
константа потому что
но не рекомендую строковые константы разбрасывать по коду. Лучше выносить в отдельный массив или в ресурсы. И менять легче и локализовать, если что
← →
Ort (2008-11-28 13:11) [27]clickmaker
переделал с массивом...все работает спасибо огромное, что потратил свое время на такого нуба как я...сейчас буду разбиратся с добавлением итемов наверняка вопросы еше возникнут по ходу пьессы %)
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2010.01.31;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.005 c