00001
00002
00003
00004
00005
00006 #include "stdafx.h"
00007 #include "FdmApp.h"
00008 #include "fsContextHelpMgr.h"
00009
00010 #ifdef _DEBUG
00011 #undef THIS_FILE
00012 static char THIS_FILE[]=__FILE__;
00013 #define new DEBUG_NEW
00014 #endif
00015
00016 fsContextHelpMgr::fsContextHelpMgr()
00017 {
00018 m_bInWT = FALSE;
00019 }
00020
00021 fsContextHelpMgr::~fsContextHelpMgr()
00022 {
00023
00024 }
00025
00026 void fsContextHelpMgr::PrepareContextMenu(CDialog *pDlg, CPoint point, fsCtrlContextHelp* pCtrls, int cCtrls)
00027 {
00028 m_pLastCtrls = pCtrls;
00029 m_cLastCtrls = cCtrls;
00030 m_pLastDlg = pDlg;
00031 m_ptLast = point;
00032 m_iLastCtrl = FindControl (point);
00033
00034 if (m_iLastCtrl == -1)
00035 return;
00036 }
00037
00038 int fsContextHelpMgr::FindControl(CPoint pt)
00039 {
00040 for (int i = 0; i < m_cLastCtrls; i++)
00041 {
00042 CWnd* pCtrl = m_pLastDlg->GetDlgItem (m_pLastCtrls [i].nIDCtrl);
00043
00044 if (pCtrl->IsWindowVisible () == FALSE)
00045 continue;
00046
00047 CRect rcCtrl;
00048 pCtrl->GetWindowRect (&rcCtrl);
00049 if (PtInRect (&rcCtrl, pt))
00050 return i;
00051 }
00052
00053 return -1;
00054 }
00055
00056 void fsContextHelpMgr::OnWT()
00057 {
00058 if (m_bInWT)
00059 return;
00060
00061 if (m_iLastCtrl == -1)
00062 return;
00063
00064 m_bInWT = TRUE;
00065
00066 HH_POPUP popup;
00067 ZeroMemory (&popup, sizeof (popup));
00068
00069 popup.cbStruct = sizeof (popup);
00070 popup.pszText = m_pLastCtrls [m_iLastCtrl].pszDesc;
00071 popup.pt = m_ptLast;
00072 popup.clrForeground = UINT (-1);
00073 popup.clrBackground = UINT (-1);
00074 popup.rcMargins = CRect (-1, -1, -1, -1);
00075 popup.pszFont = "MS Sans Serif, 8, DEFAULT_CHARSET";
00076
00077 HtmlHelp (m_pLastDlg->m_hWnd, NULL, HH_DISPLAY_TEXT_POPUP, (DWORD) &popup);
00078
00079 m_bInWT = FALSE;
00080 }
00081
00082 void fsContextHelpMgr::ShowMenu()
00083 {
00084 if (m_iLastCtrl == -1)
00085 return;
00086
00087 CMenu menu;
00088 menu.LoadMenu (IDM_WT);
00089
00090 CMenu *popup = menu.GetSubMenu (0);
00091 popup->ModifyMenu (ID_WHATISTHIS, MF_BYCOMMAND|MF_STRING, ID_WHATISTHIS, LS (L_WHATISTHIS));
00092
00093 popup->TrackPopupMenu (TPM_RIGHTBUTTON | TPM_TOPALIGN | TPM_LEFTALIGN, m_ptLast.x, m_ptLast.y, m_pLastDlg);
00094 }