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

Last reviewed: June 26, 1997
Article ID: Q138505
The information in this article applies to:
  • The Microsoft Foundation Classes (MFC) included with: - Microsoft Visual C++, 32-bit Edition, versions 2.1, 2.2, 4.0, 4.1, 5.0
  • Microsoft Visual Studio 97

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 Visual Studio 97, the resource editor allows you 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.


Additional query words: 3.10 3.20 3.1 3.2 VS 97
Keywords : kbcode kbui MfcUI
Technology : kbMfc
Version : 2.1 2.2 4.0 4.1 5.0
Platform : NT WINDOWS
Issue type : kbhowto


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: June 26, 1997
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.