{S0}简介
添加上下文帮助您的应用程序扩展使用,增强了用户体验。上下文帮助可确认由问号的箭头光标。支持这个对话框可以被认可?图标在右上角的方块的角落。如何安装Microsoft HTML帮助1.4 SDK中... ...读故事。用户增强
如果用户了解一些控制功能有问题,解决的办法是,点击图标,光标移动到控制问题,并左击鼠标。另一种方法是为有输入焦点,而不会产生一个命令消息(如编辑控件)的控制,只需按下F1键具有相同的效果。一个弹出窗口出现,其中包括帮助文本声明。四个步骤
添加上下文帮助使用HTML弹出可描述四个步骤:启用"对话框属性","扩展样式页对话框的上下文帮助。分配帮助控制文本在您的"字符串表"。陷阱在对话框类WM_HELPINFO的信息。复制下面的代码粘贴到你想要的类。 BEGIN_MESSAGE_MAP(CDlg,CDialog的) ON_WM_HELPINFO()END_MESSAGE_MAP()
重要的是,在你的字符串表中使用的ID是相同的命名控制,尽量使用组合框,在"字符串属性"对话框。
消息处理程序准备就绪
WM_HELPINFO消息的消息处理程序是这样的:AFX_MSG布尔OnHelpInfo(HELPINFO * pHelpInfo);BOOL CDlg::OnHelpInfo(HELPINFO * pHelpInfo){ / /此方法做了所有工作 ShowContextHelp(的CWnd::FromHandle((HWND)的pHelpInfo - GT; hItemHandle) pHelpInfo - GT; MousePos,pHelpInfo - GT; iCtrlId); / /我们将继续的消息,所以跳过基类 / /返回CDialog的:OnHelpInfo(pHelpInfo); 返回TRUE;}
在评论中提到,ShowContextHelp (...)方法,我们的注意力。该方法有三个参数:一个窗口的指针,点结构发生请求帮助,并确定control.void CDlg:ShowContextHelp(的CWnd * pWnd,角点,INT iCtrlID){CString的小号; / /从字符串表的负载帮助文本 (s.LoadString(iCtrlID)) { HH_POPUP hPop; / /的HTML帮助弹出式结构 / /初始化结构到的NULL
memset的(安培; hPop,0,sizeof(hPop)的); / /设置结构的大小 hPop.cbStruct = SIZEOF(hPop); / /黄色背景 hPop.clrBackground = RGB(255,255,208); hPop.clrForeground = -1; / /字体颜色 hPop.rcMargins.left = -1; hPop.rcMargins.bottom = -1; hPop.rcMargins.right = -1; hPop.pt = PT; hPop.pszText = S / /从字符串表的消息 hPop.pszFont = NULL; / /字体 HTMLHELP(pWnd -> GetSafeHwnd(),NULL HH_DISPLAY_TEXT_POPUP,(DWORD)放大器; hPop); } / /结束,如果找到了此请求帮助字符串} / / ShowContextHelp (...)
HH_POPUP结构是用来显示在弹出窗口中的上下文帮助。结构设置前景/背景颜色,调整的地方会显示弹出的成员,并选择要使用的字体。如果跳过第一个参数,键入NULL,你将体验到,在弹出的窗口就像是一个无模式对话框,这是无意的。
HTMLHELP (...)方法点的第二个参数字符串资源也可以被放置到一个文件对象。
希望你会发现它非常有用。