A Wrapper for MessageBoxIndirect

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


Comments

  • Very Nice

    Posted by jeffrey@toad.net on 10/11/2005 09:26am

    Hi Peter, Just what the doctor ordered... Jeff

    Reply
Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • Live Event Date: May 6, 2014 @ 1:00 p.m. ET / 10:00 a.m. PT While you likely have very good reasons for remaining on WinXP after end of support -- an estimated 20-30% of worldwide devices still are -- the bottom line is your security risk is now significant. In the absence of security patches, attackers will certainly turn their attention to this new opportunity. Join Lumension Vice President Paul Zimski in this one-hour webcast to discuss risk and, more importantly, 5 pragmatic risk mitigation techniques …

  • With JRebel, developers get to see their code changes immediately, fine-tune their code with incremental changes, debug, explore and deploy their code with ease (both locally and remotely), and ultimately spend more time coding instead of waiting for the dreaded application redeploy to finish. Every time a developer tests a code change it takes minutes to build and deploy the application. JRebel keeps the app server running at all times, so testing is instantaneous and interactive.

Most Popular Programming Stories

More for Developers

RSS Feeds