如何将MFC对话框映射到不同的帮助id
How to map a MFC dialog box to different help ids?
我有一个对话框CMyDialogBox有帮助按钮。我已经将帮助按钮映射到所需的帮助id。
当我有以下要求时,问题出现了:当我创建以下实例时,帮助按钮应该映射为不同的帮助。
CMyDialogBox mesg1; // help should map to 123.htm
CMyDialogBox mesg2; // help should map to 124.htm
CMyDialogBox mesg3; // help should map to 125.htm
但是对话框有一个帮助按钮映射到一个帮助内容。如何映射到多个帮助id?
我试过了:
我尝试使用Setntrldlg()
更改initdailog()
功能对话框的对话框id
我认为你很接近,但可能应该叫SetHelpID
而不是SetDlgCtrlID
。
这个问题已经有几年的历史了,所以为了其他遇到这个问题的人的利益,这里是如何做的。假设选择哪个帮助页面的决定可以在OnInitDialog
期间决定,并且假设您正在使用HTML帮助编译器工具的方式看起来像是您"应该"使用它们:
- 在
resource.h
文件中定义id,特别是makehm
实用程序看到它们,以生成"H"版本。 - 在
OnInitDialog
中,使用这些id之一调用SetHelpID
,取决于对话框的模式,或者需要不同帮助页面的任何条件。尽管它被称为SetHelpID
,但它需要一个常规ID,因为"H"前缀的ID在应用程序中不存在。 - 在帮助文件中,设置id的"H"版本以映射到其他HTML文件。
- 如果你正在使用一个对话框模板,并没有使用它作为你的帮助id之一,你可能要继续映射到一个帮助页面无论如何,以防
SetHelpID
没有得到调用你的替代id之一(也许有一个例外或一些东西,例如)。
我认为你可以添加一个CString变量到CMyDialogBox,并在构造对话框时初始化它。像这样:CMyDialogBox messg1 ("123.htm");
相关文章:
- 需要帮助设置在C++中使用的Potrace
- 在指针的帮助下,文本文件中单词的频率
- 计算每个节点的树高,帮助我解释这个代码解决方案
- 如何在Qbutton的帮助下更改Q对话框的宽度
- 需要帮助将结构数组传递给函数
- 从函数角度看ID到文件路径的内部与外部映射
- 通过组合不同的类型来创建唯一的id
- 我不断收到 [错误] ID 返回 1 退出状态错误,但看不到问题所在
- FFMPEG配置文件级别id大小无效
- C++需要帮助从用户那里获得一个整数,并确保它在另外两个整数之间
- 方法内部但循环仍得到预期的不合格id错误C++
- 如何获取 GLFW 窗口 ID?
- 当简单捕获中的标识符显示为参数的声明符 ID 时,没有编译器诊断
- 显示数组中的学生 ID 和最高分
- 需要帮助在 c++ 中将字符串转换为字符 ----错误 "const char *" 类型的值不能用于初始化 "char" 类型的实体
- 有人可以帮助我处理正则表达式吗?
- C++需要所有声明的类型说明符和预期的非限定 id(需要调试帮助)
- QFile和QTextStream帮助(为具有用户名、密码和名称的用户编写ID)
- 如何将MFC对话框映射到不同的帮助id
- 如何在MFC中映射错误消息框的帮助id