You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
2.5 KiB
85 lines
2.5 KiB
/*****************************************************************************
|
|
*
|
|
* tlframe.cpp
|
|
*
|
|
* Frame window that hosts a treelist.
|
|
*
|
|
*****************************************************************************/
|
|
|
|
#include "sdview.h"
|
|
|
|
/*****************************************************************************
|
|
*
|
|
* TLFrame
|
|
*
|
|
*****************************************************************************/
|
|
|
|
LRESULT TLFrame::ON_WM_NOTIFY(UINT uiMsg, WPARAM wParam, LPARAM lParam)
|
|
{
|
|
NMHDR *pnm = RECAST(NMHDR *, lParam);
|
|
|
|
if (pnm->idFrom == IDC_LIST) {
|
|
switch (pnm->code) {
|
|
|
|
case LVN_GETDISPINFO:
|
|
return _tree.OnGetDispInfo(CONTAINING_RECORD(pnm, NMLVDISPINFO, hdr));
|
|
|
|
case LVN_ODCACHEHINT:
|
|
return _tree.OnCacheHint(CONTAINING_RECORD(pnm, NMLVCACHEHINT, hdr));
|
|
|
|
case LVN_KEYDOWN:
|
|
return _tree.OnKeyDown(CONTAINING_RECORD(pnm, NMLVKEYDOWN, hdr));
|
|
|
|
case NM_CLICK:
|
|
return _tree.OnClick(CONTAINING_RECORD(pnm, NMITEMACTIVATE, hdr));
|
|
}
|
|
}
|
|
return super::HandleMessage(uiMsg, wParam, lParam);
|
|
}
|
|
|
|
LRESULT TLFrame::ON_LM_ITEMACTIVATE(UINT uiMsg, WPARAM wParam, LPARAM lParam)
|
|
{
|
|
return _tree.OnItemActivate((int)wParam);
|
|
}
|
|
|
|
LRESULT TLFrame::ON_LM_GETINFOTIP(UINT uiMsg, WPARAM wParam, LPARAM lParam)
|
|
{
|
|
return _tree.OnGetInfoTip(RECAST(NMLVGETINFOTIP *, lParam));
|
|
}
|
|
|
|
LRESULT TLFrame::ON_LM_GETCONTEXTMENU(UINT uiMsg, WPARAM wParam, LPARAM lParam)
|
|
{
|
|
return _tree.OnGetContextMenu((int)wParam);
|
|
}
|
|
|
|
LRESULT TLFrame::ON_LM_COPYTOCLIPBOARD(UINT uiMsg, WPARAM wParam, LPARAM lParam)
|
|
{
|
|
return _tree.OnCopyToClipboard((int)wParam, (int)lParam);
|
|
}
|
|
|
|
BOOL TLFrame::CreateChild(DWORD dwStyle, DWORD dwExStyle)
|
|
{
|
|
BOOL fResult = super::CreateChild(dwStyle | LVS_OWNERDATA, dwExStyle);
|
|
if (fResult) {
|
|
_tree.SetHWND(_hwndChild);
|
|
HIMAGELIST himl = ImageList_LoadBitmap(g_hinst, MAKEINTRESOURCE(IDB_IMAGES),
|
|
16, 0, RGB(0xFF, 0x00, 0xFF));
|
|
_tree.SetImageList(himl);
|
|
ImageList_SetOverlayImage(himl, 7, 1);
|
|
}
|
|
return fResult;
|
|
}
|
|
|
|
LRESULT
|
|
TLFrame::HandleMessage(UINT uiMsg, WPARAM wParam, LPARAM lParam)
|
|
{
|
|
switch (uiMsg) {
|
|
FW_MSG(WM_NOTIFY);
|
|
FW_MSG(LM_ITEMACTIVATE);
|
|
FW_MSG(LM_GETINFOTIP);
|
|
FW_MSG(LM_GETCONTEXTMENU);
|
|
FW_MSG(LM_COPYTOCLIPBOARD);
|
|
}
|
|
|
|
return super::HandleMessage(uiMsg, wParam, lParam);
|
|
}
|