CFormView中的上下文帮助?

2014-11-23 20:10:09 · 作者: · 浏览: 6

我想在基于CFormView类的SDI应用程序中加入真正的上下文帮助,但没有成功.

A:你应该重载CMyFormView类的OnHelpHitTest函数:

LRESULT CMyFormView::OnHelpHitTest(WPARAM, LPARAM lParam)

{

LRESULT lResult = (LRESULT)0x00;

CWnd* pWndChild = ChildWindowFromPoint(Cpoint(lParam),CWP_ALL|CWP_SKIPINVISIBLE);

if (pWndChild && ::IsWindow(pWndChild->m_hWnd))

{

lResult = ::GetWindowLong(pWndChild->m_hWnd, GWL_ID);

if (lResult)

lResult += HID_BASE_COMMAND;

}

if (lResult == (LRESULT)0x00)

lResult = ::GetWindowLong(m_hWnd, GWL_ID) + HID_BASE_RESOURCE;

return lResult;

}

然后你就可以使用平时用的帮助文件了,但你要保证有正确的前缀,请参照 TN028:Context-Sensitive Help Support.

例如:

ID_SOME_MENU_ITEM_OR_COMMAND_BUTTON

IDR_SOME_WINDOW_OR_DIALOG

IDP_PROMPT

IDW_CONTROL_THAT_IS_NOT_A_COMAND_BUTTON

你要确认你所使用的控件的ID包含在文件resource.hm中.