HOWTO: Add Context-Sensitive Help Button to Win 95 Dialog Boxes

ID: Q138505


The information in this article applies to:
  • The Microsoft Foundation Classes (MFC), included with:
    • Microsoft Visual C++, 32-bit Editions, versions 2.1, 2.2, 4.0, 4.1, 5.0, 6.0


SUMMARY

Windows 95 provides DS_CONTEXTHELP as a new dialog box style to implement context-sensitive help in dialog boxes. The Dialog Editor included with Visual C++ versions 2.1 and 2.2, does not provide a way to set this style when designing the dialog box. This article shows, by example, how to add the context-sensitive help button to the title bar of dialog boxes.

Starting with version 4.0 of Visual C++, the resource editor does allow this extended style to be set. However, this causes the resource editor to generate a DIALOGEX resource that is not supported on Win32s. Therefore, to stay compatible with Win32s, you can still apply the method discussed in this article.

In Visual C++, version 5.0 and later, the resource editor allows you to set both options.


MORE INFORMATION

If the DS_CONTEXTHELP style is set for a dialog box, Windows 95 adds a question mark button to the title bar of the dialog box. When the user clicks the question mark, the mouse pointer changes to a question mark with a pointer. If the user then clicks a control in the dialog box, the control receives a WM_HELP message.

To set this style, override the OnInitDialog member function of the CDialog-derived class, and add the WS_EX_CONTEXTHELP style to the extended styles for the dialog box. The following code illustrates this:


   BOOL CAboutDlg::OnInitDialog()
   {
        CDialog::OnInitDialog();
        LONG style = ::GetWindowLong(m_hWnd, GWL_EXSTYLE);
        style |= WS_EX_CONTEXTHELP;
        ::SetWindowLong(m_hWnd, GWL_EXSTYLE, style);
        return TRUE;
   } 
NOTE: DS_CONTEXTHELP is just a placeholder. When the dialog box is created, the system checks for DS_CONTEXTHELP and, if it is there, adds WS_EX_CONTEXTHELP to the extended style of the dialog box.

Keywords : kbcode kbui kbMFC KbUIDesign kbVC kbVC210 kbVC220 kbVC400 kbVC410 kbVC500 kbVC600 kbfaq
Version : 2.1 2.2 4.0 4.1 5.0 6.0
Platform : NT WINDOWS
Issue type : kbhowto


Last Reviewed: January 12, 2000
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.