我有一个对话框CMyDialogBox,它有帮助按钮。 我已将帮助按钮映射到所需的helpid。
当我有以下要求时问题会上升:当我创建以下实例时,应该使用不同的帮助来映射帮助按钮。
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?
我尝试了什么:
我尝试使用initdailog()
更改Setntrldlg()
函数上对话框的对话框ID
但没有结果。
答案 0 :(得分:1)
我认为你很接近,但可能应该调用SetHelpID
而不是SetDlgCtrlID
。
这个问题已有几年了,所以为了这个问题的其他人的利益,这里是如何做到的。假设可以在OnInitDialog
期间决定选择哪个帮助页面,并假设您正在使用HTML帮助编译器工具,就像您认为"应该" 34;使用它们:
resource.h
文件中定义ID,尤其是makehm
实用程序看到它们,以生成" H"版本OnInitDialog
中使用其中一个ID调用SetHelpID
,具体取决于对话框的模式,或者需要不同帮助页面的任何条件。即使它被称为SetHelpID
,它也会使用常规ID,因为应用程序中不存在" H" - 前缀ID。SetHelpID
没有&#39 ;你可以调用一个备用ID(例如,可能存在例外情况)。答案 1 :(得分:0)
我认为你可以在CMyDialogBox中添加一个CString变量,并在构造DialogBox时初始化它。就像这样:CMyDialogBox mesg1(“123.htm”);