您可以通过使用HELP_WM_HELP或HELP_CONTEXTMENU命令调用WinHelp功能来显示包含特定控件或菜单??信息的弹出式主题。这些命令在相应的控件或菜单??附近的弹出窗口中显示一个主题。要让用户立即返回在应用程序中工作,只要用户按下键或单击鼠标左键,弹出窗口就会被销毁。
处理WM_HELP消息用于控制窗口时,使用HELP_WM_HELP命令。因为大多数控件将WM_HELP消息传递给DefWindowProc函数,相应的对话框过程(或父窗口过程)会处理此消息。对话框过程不必给出特定的上下文标识符,而是必须将控制和上下文标识符数组的数组连同与通过WM_HELP消息传递的HELPINFO结构HELPINFO结果中指定的控制句柄一起传递给WinHelp.该函数确定生成WM_HELP消息的控件的标识符,并使用匹配的上下文标识来显示相应的主题。
处理WM_CONTEXTMENU消息时,使用HELP_CONTEXTMENU命令。因为大多数控件将WM_CONTEXTMENU消息传递给DefWindowProc函数,相应的对话框过程(或父窗口过程)将处理此消息。再次,该过程在【wParam中】调用WinHelp时指定控制和上下文标识符对的数组以及句柄,以便函数可以从数组中选择适当的上下文标识符并显示适当的主题。与HELP_WM_HELP命令不同,HELP_CONTEXTMENU首先显示这是什么?命令在菜单中。如果用户选择该命令,WinHelp显示主题。否则,请求被取消。
您还可以使用HELP_CONTEXTPOPUP命令并指定主题的上下文标识来显示弹出式主题。此命令与HELP_CONTEXT命令类似,但调用HELP_WM_HELP和HELP_CONTEXTMENU使用的Windows帮助的弹出实例。应用程序可以使用此命令来响应WM_HELP消息来显示菜单和对话框中不是控件的窗口的帮助。要最有效地使用此命令,应用程序应该为这些菜单和窗口分配上下文标识符。
您可以为应用程序中的任何窗口或菜单分配上下文标识符。当用户的帮助请求生成WM_HELP消息时,系统将包含HELPINFO结构中的上下文标识符,它与WM_HELP消息一起传递到父窗口。然后,父窗口可以将上下文标识符传递给WinHelp以显示请求的帮助主题。
您可以使用SetWindowContextHelpId功能将上下文标识符分配给窗口或控件,并将SetMenuContextHelpId功能分配给菜单的上下文标识。您可以使用GetWindowContextHelpId或GetMenuContextHelpId功能检索窗口或菜单的上下文标识符。