Wie kann ich einzelne Baum-Elemente ansprechen?
Ich erstelle meinen Baum wie folgt:
Über meine Funktion AddTreeViewItems() erstelle ich meine Baumeinträge und er wird auch so dargestellt wie vorgesehen.
Jedes Element gibt mir ja nun seinen handle... aber wie kann ich denn mit WM_LBUTTONDOWN oder so die einelnen Elemente ansprechen?
Ziel ist es von mir durch die Auswahl jedes Eintrages ein neues Fenster zu öffnen!
thx schonmal im vorraus
Ich erstelle meinen Baum wie folgt:
Code:
void RegTreeWindow()
{
WNDCLASSEX WndClsEx;
WndClsEx.cbSize = sizeof(WNDCLASSEX);
WndClsEx.style = CS_HREDRAW | CS_VREDRAW|CS_PARENTDC;
WndClsEx.lpfnWndProc = TreeWndProc;
WndClsEx.cbClsExtra = 0;
WndClsEx.cbWndExtra = 0;
WndClsEx.hInstance = hInstance;
WndClsEx.hIcon = LoadIcon(NULL, MAKEINTRESOURCE("picticon.ico"));
WndClsEx.hCursor = LoadCursor(NULL, IDC_ARROW);
WndClsEx.hbrBackground = (HBRUSH)(COLOR_BTNFACE + 1);
WndClsEx.lpszMenuName = NULL;
WndClsEx.lpszClassName = TreeWindowClassName;
WndClsEx.hIconSm = LoadIcon(NULL, MAKEINTRESOURCE("picticon.ico"));
RegisterClassEx(&WndClsEx);
}
Code:
HWND CreateTreeWindow(HWND hwnd)
{
MDICREATESTRUCT mcs;
mcs.szTitle = "Tree";
mcs.szClass = TreeWindowClassName;
mcs.hOwner = GetModuleHandle(NULL);
mcs.x = 0;
mcs.y = 0;
mcs.style = MDIS_ALLCHILDSTYLES;
mcs.cx = 200;
mcs.cy = 600;
NewWnd = (HWND)SendMessage(hwnd, WM_MDICREATE, 0, (LONG)&mcs);
return NewWnd;
}
Code:
LRESULT CALLBACK TreeWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
case WM_CREATE:
{
AddTreeViewItems(CreateTreeView(hwnd));
}
break;
case WM_MDIACTIVATE:
{
HMENU hMenu, hFileMenu;
UINT EnableFlag;
hMenu = GetMenu(hWndMainFrame);
if(hwnd == (HWND)lParam)
{
EnableFlag = MF_ENABLED;
}
else
{
EnableFlag = MF_GRAYED;
}
EnableMenuItem(hMenu, 1, MF_BYPOSITION | EnableFlag);
EnableMenuItem(hMenu, 2, MF_BYPOSITION | EnableFlag);
hFileMenu = GetSubMenu(hMenu, 0);
EnableMenuItem(hFileMenu, IDM_FILE_CLOSE, MF_BYCOMMAND | EnableFlag);
EnableMenuItem(hFileMenu, IDM_WINDOW_CLOSE_ALL, MF_BYCOMMAND | EnableFlag);
DrawMenuBar(hWndMainFrame);
}
break;
default:
return DefMDIChildProc(hwnd, msg, wParam, lParam);
}
return 0;
}
Über meine Funktion AddTreeViewItems() erstelle ich meine Baumeinträge und er wird auch so dargestellt wie vorgesehen.
Jedes Element gibt mir ja nun seinen handle... aber wie kann ich denn mit WM_LBUTTONDOWN oder so die einelnen Elemente ansprechen?
Ziel ist es von mir durch die Auswahl jedes Eintrages ein neues Fenster zu öffnen!
thx schonmal im vorraus