A Wrapper for MessageBoxIndirect

CodeGuru content and product recommendations are editorially independent. We may make money when you click on links to our partners. Learn More.

Environment: Windows NT4 SP5, Visual C++ 6 SP2

Introduction

Sometimes you might wish you could use other icons in a message box apart from the ones Windows gives you,
or you might want to have more control over how your message box, specify which language to use, etc. Well,
there is a way to do all this using the little-known API call MessageBoxIndirect.

Here is a class which encapsulates MessageBoxIndirect (actually, it inherits from the MESSAGEBOXPARAMS
structure which you pass to MessageBoxIndirect). You can use it like an MFC CDialog, although there are no
dependencies on MFC.

Usage

  1. Declare a CMessageBox object
  2.   #include "MessageBox.h"
      ....
    
      CMessageBox box;
      

    or

      CMessageBox box(hWnd, "My Text", "My Caption", MB_OK);
      
  3. Initialize it (If you are just displaying a standard Message Box you can skip this step
  4.     box.SetIcon(IDI_SOMEICON);
    
        box.SetLangID(MAKELANGID(LANG_CHINESE,
         SUBLANG_CHINESE_TRADITIONAL));
        
  5. Call DoModal.
  6.     if(box.DoModal() == MB_OK)
        {
          // Do something here
        }
        else
        {
          // Do something else
        }
        

That’s it!

Downloads

Download demo project – 16 Kb
Download source – 2 Kb

More by Author

Get the Free Newsletter!

Subscribe to Developer Insider for top news, trends & analysis

Must Read