NOTE: Всё в проекте создаётся ручками, без MFC.
Кусочек кода:
Больше дать, думаю, не смогу. Проект весьма велик.
- Код: Выделить всё
void TSystemsPage::DefChildProc(RTMessage Msg)
{
//Мое предположение
switch (Msg.Message)
{
case WM_RBUTTONDOWN:
{
MessageBox(HWindow,"ss","ss",0); //Пришло сообщение
}
}
}
//Тут всё заканчивается
switch(Msg.WP.Lo)
{
case IDC_BTN_SETTINGS:
{
HTREEITEM TreeItem;
ZeroMemory( &TreeItem, sizeof(HTREEITEM));
TreeItem = (HTREEITEM)SendMessage( hTreeWnd, TVM_GETNEXTITEM, (WPARAM)(UINT)TVGN_CARET, NULL);
{
TVITEM ItemDesc;
ZeroMemory( &ItemDesc, sizeof( TVITEM ));
ItemDesc.hItem = TreeItem;
ItemDesc.mask = TVIF_PARAM | TVIF_TEXT;
SendMessage( hTreeWnd, TVM_GETITEM, NULL, (LPARAM)&ItemDesc );
{
CTemplate* pObj = (CTemplate*)ItemDesc.lParam;
if( pObj )
{
pObj->SetOptions(HWindow,0);
}
else
MessageBox(HWindow, "This item have not options", "Information", MB_OK | MB_ICONINFORMATION);
}
}
}
return;
case IDC_BTN_ADD:
{
HTREEITEM TreeItem;
ZeroMemory( &TreeItem, sizeof(HTREEITEM));
TreeItem = (HTREEITEM)SendMessage( hTreeWnd, TVM_GETNEXTITEM, (WPARAM)(UINT)TVGN_CARET, NULL);
{
TVITEM ItemDesc;
ZeroMemory( &ItemDesc, sizeof( TVITEM ));
ItemDesc.hItem = TreeItem;
ItemDesc.mask = TVIF_PARAM | TVIF_TEXT;
SendMessage( hTreeWnd, TVM_GETITEM, NULL, (LPARAM)&ItemDesc );
int nRes = -1;
if(IDOK == ExecAllSystemsDialog(HWindow, &nRes ))
{
CTemplate* pObj = AddModelerObject(lpChannelList,lpSystemList, (UINT)nRes);
if(!pObj)
{
MessageBox(HWindow, "Unable to add the component", "Error", MB_OK | MB_ICONSTOP);
}
else
pObj->LoadInitials(lpszSCLogFile);
}
}
}
break;
case IDC_BTN_REMOVE:
{
HTREEITEM TreeItem;
CTemplate* pObj = NULL;
ZeroMemory( &TreeItem, sizeof(HTREEITEM));
TreeItem = (HTREEITEM)SendMessage( hTreeWnd, TVM_GETNEXTITEM, (WPARAM)(UINT)TVGN_CARET, NULL);
{
TVITEM ItemDesc;
ZeroMemory( &ItemDesc, sizeof( TVITEM ));
ItemDesc.hItem = TreeItem;
ItemDesc.mask = TVIF_PARAM | TVIF_TEXT | TVIF_HANDLE;
SendMessage( hTreeWnd, TVM_GETITEM, NULL, (LPARAM)&ItemDesc );
pObj = (CTemplate*)ItemDesc.lParam;
}
DeleteModelerObjectByPointer( lpSystemList, pObj );
}
break;
default:;
}
ClearTree();
RefreshTree();
MTSheetPage::DefChildProc(Msg);
}
void TSystemsPage::DefWndProc(RTMessage Msg)
{
switch(Msg.Message)
{
case WM_CLOSE:
{
}
default:;
}
MTSheetPage::DefWndProc(Msg);
}
DefWndProc обрабатывает сообщения окна, DefChildProc - сообщения находящихся на нём /окне/ фиговин - кнопочек и т.д.