Форум: "WinAPI";
Текущий архив: 2004.08.08;
Скачать: [xml.tar.bz2];
ВнизTreeView на WinAPI Найти похожие ветки
← →
DmitryS (2004-06-28 09:08) [0]Уважаемые знатоки WinAPI. Подскажите как нарисовать TreeView используя WinAPI ? Все что я нашел по этому вопросу для C++, на Delphi работать не хочет. Желательно небольшой пример.
Заранее благодарен.
← →
GrayWolf (2004-06-28 09:35) [1]TreeView:=CreateWindow("SysTreeView32",...)
Работает 100%. Или уточни вопрос...
← →
SammIk © (2004-06-28 09:37) [2]
CreateWindowEx( WS_EX_CLIENTEDGE,"SysListView32", NiL,WS_CHILD or WS_VISIBLE or LVS_REPORT or LVS_SHAREIMAGELISTS,0, 0, 0, 0, hWnd, NiL, hInst, NiL
← →
SammIk © (2004-06-28 09:38) [3]Удалено модератором
Примечание: Создание пустых сообщений
← →
MBo © (2004-06-28 09:45) [4]http://www.codeguru.com/Cpp/controls/treeview/
← →
DmitryS (2004-06-28 10:19) [5]Прошу прощения за мою дремучесть.
Согласно инструкции, которые я нашел, Tree View создается функцией CreateWindowEx на базе класса окна WC_TREEVIEW :
hwndTree = CreateWindowEx(OL, WC_TREEVIEW, "",
WS_VISIBLE | WS_CHILD | WS_BORDER |
TVS_HASLINES | TVS_HASBUTTONS | TVS_LINESATROOT,
0, 0, rc.right - rc.left, rc.bottom - rc.top,
hWnd, (HMENU) IDC_TREEVIEW, hInst, NULL);
либо
hTreeView = CreatcWindow(WC_TREEVIEW,"",
WSJVISIBLE | WS JTABSTOP | WS_CHILD | TVSJIASLINES | TVSJiASBUTTONS | TVS_LINESATROOT, 0, 0. Rcct.right, Rcct.bottom, hWnd, NULL, hlnst, NULL);
Но у меня ругается на WC_TREEVIEW. Я понимаю, что ей чего-то не хватает, может каку библиотеку использовать надо. Но какую я не знаю.
Всем сочувствующим - огромное спасибо.
2MBo - опять же все для С++, а я в нем ни бум-бум.
← →
Cobalt © (2004-06-28 11:31) [6]Удалено модератором
← →
DmitryS (2004-06-28 11:44) [7]С CreatcWindow вроде разобрался сам, оказалось надо прописать в Uses файл Commctrl. Теперь ошибки нету. Но дерево все равно не видно. Вот программа следующее (просьба не смеяться, я начинающий):
program Poba;
uses Windows, Messages, Commctrl;
const
WinName = "MainWClass";
var
MainF: HWND;
MainMenu: HMENU;
m_treeView: HWND;
AMessage: msg;
function MainWndProc(Window: HWnd; AMessage, WParam,
LParam: Longint): Longint; stdcall; export;
begin
case AMessage of
WM_DESTROY: begin
PostQuitMessage(0);
Exit;
end;
else
Result := DefWindowProc(Window, AMessage, WParam, LParam);
end;
end;
function InitApplication: Boolean;
var
wcx: TWndClass;
begin
wcx.style := CS_HREDRAW or CS_VREDRAW;
wcx.lpfnWndProc := @MainWndProc;
wcx.cbClsExtra := 0;
wcx.cbWndExtra := 0;
wcx.hInstance := hInstance;
wcx.hIcon := LoadIcon(0, IDI_APPLICATION);
wcx.hCursor := LoadCursor(0, IDC_ARROW);
wcx.hbrBackground := COLOR_WINDOW;
wcx.lpszMenuName := nil;
wcx.lpszClassName := PChar(WinName);
Result := RegisterClass(wcx) <> 0;
end;
function InitInstance: HWND;
begin
Result := CreateWindow(
PChar(WinName),
"Small program",
WS_OVERLAPPEDWINDOW,
Integer(CW_USEDEFAULT),
Integer(CW_USEDEFAULT),
Integer(CW_USEDEFAULT),
Integer(CW_USEDEFAULT),
0,
0,
hInstance,
nil);
end;
begin
if (not InitApplication) then begin
MessageBox(0, "Error1", nil, mb_Ok);
Exit;
end;
MainF := InitInstance;
if (MainF = 0) then begin
MessageBox(0, "Error2", nil, mb_Ok);
Exit;
end else begin
ShowWindow(MainF, CmdShow);
MainMenu:=CreateMenu();
AppendMenu(MainMenu, mf_String, 1, PChar("menu-1"));
AppendMenu(MainMenu, mf_String, 2, PChar("menu-2"));
AppendMenu(MainMenu, mf_String, 3, PChar("menu-3"));
AppendMenu(MainMenu, mf_String, 4, PChar("menu-4"));
SetMenu(MainF, MainMenu);
m_treeView:=CreateWindow(WC_TREEVIEW,"",
WS_VISIBLE or WS_TABSTOP or WS_CHILD or TVS_HASLINES or TVS_HASBUTTONS or
TVS_LINESATROOT, 10, 10, 100, 100, MainF, 0, hInstance, 0);
UpdateWindow(MainF);
end;
while (GetMessage(AMessage, 0, 0, 0)) do begin
TranslateMessage(AMessage);
DispatchMessage(AMessage);
end;
Halt(AMessage.wParam);
end.
Вопрос ? Почему не видно дерево.
← →
Враль (2004-06-28 11:48) [8]Перед созданием дерева нелишне вызвать InitCommonControls
← →
DmitryS (2004-06-28 12:07) [9]Ура-а-а (прошу прощения за эмоции).
Всем огромное спасибо.
P.S. Cамое обидное, что примера на Дельфи + WinAPI с деревом я так и не нашел. Может у кого ссылка есть.
← →
DmitryS (2004-06-30 09:56) [10]Такое впечатление, что никому деревья не нужны. Облазил весь инет, а примера на Дельфи + WinAPI с деревом так и не встретил. Может это запрещенная тема ? :(
← →
Игорь Шевченко © (2004-06-30 10:16) [11]DmitryS (30.06.04 09:56)
> Может это запрещенная тема ?
А в исходники Comctrls.pas смотреть коран не велит ?
← →
DmitryS (2004-06-30 10:34) [12]Удалено модератором
Примечание: Offtopic
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.08.08;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.033 c