InBlock.gif#include <windows.h>
InBlock.gif /*--------------------按钮-----------------------------
InBlock.gif#define MB_OK              0x00000000L
InBlock.gif
#define MB_OKCANCEL            0x00000001L
InBlock.gif    
InBlock.gif#define MB_ABORTRETRYIGNORE        0x00000002L
InBlock.gif  
InBlock.gif#define MB_YESNOCANCEL          0x00000003L
InBlock.gif    
InBlock.gif#define MB_YESNO            0x00000004L
InBlock.gif    
InBlock.gif#define MB_RETRYCANCEL          0x00000005L
InBlock.gif------------------------------------------------------*/

InBlock.gif
/*---------------------默认按钮--------------------------------
InBlock.gif#define         MB_DEFBUTTON1                                                                                0x00000000L
InBlock.gif
#define         MB_DEFBUTTON2                                                                                0x00000100L
InBlock.gif    
InBlock.gif#define         MB_DEFBUTTON3                                                                                0x00000200L
InBlock.gif  
InBlock.gif#define         MB_DEFBUTTON4                                                                                0x00000300L
InBlock.gif -------------------------------------------------------------*/

InBlock.gif
/*-----------------------图标---------------------------------------
InBlock.gif#define MB_ICONHAND                0x00000010L
InBlock.gif
#define MB_ICONQUESTION              0x00000020L
InBlock.gif    
InBlock.gif#define MB_ICONEXCLAMATION            0x00000030L
InBlock.gif  
InBlock.gif#define MB_ICONASTERISK              0x00000040L
InBlock.gif
or
InBlock.gif
#define         MB_ICONWARNING                                MB_ICONEXCLAMATION
InBlock.gif    
InBlock.gif#define         MB_ICONERROR                                    MB_ICONHAND
InBlock.gif  
InBlock.gif#define         MB_ICONINFORMATION                        MB_ICONASTERISK
InBlock.gif    
InBlock.gif#define         MB_ICONSTOP                                     MB_ICONHAND
InBlock.gif------------------------------------------------------------------*/

InBlock.gif
/*-----------------------------------------------------------------
InBlock.gif0x00000001                                            00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000001    
InBlock.gif0x00000002            00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000010
InBlock.gif0x00000003            00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000011
InBlock.gif0x00000004            00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000100
InBlock.gif0x00000005            00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000101
InBlock.gif    
InBlock.gif0x00000010            00000000 00000000 00000000 00000000 00000000 00000000 00000001 00000000
InBlock.gif0x00000020            00000000 00000000 00000000 00000000 00000000 00000000 00000010 00000000
InBlock.gif0x00000030            00000000 00000000 00000000 00000000 00000000 00000000 00000011 00000000
InBlock.gif0x00000040            00000000 00000000 00000000 00000000 00000000 00000000 00000100 00000000
InBlock.gif  
InBlock.gif0x00000100            00000000 00000000 00000000 00000000 00000000 00000001 00000000 00000000
InBlock.gif0x00000200            00000000 00000000 00000000 00000000 00000000 00000010 00000000 00000000
InBlock.gif0x00000300            00000000 00000000 00000000 00000000 00000000 00000011 00000000 00000000
InBlock.gif0x00000400            00000000 00000000 00000000 00000000 00000000 00000100 00000000 00000000
InBlock.gif-------------------------------------------------------------------*/

InBlock.gif
#define    MAX_MESSAGEBOX_BUTTON_NUM  6
InBlock.gif#define    MAX_MESSAGEBOX_DEFAULT_BUTTOM_NUM  4
InBlock.gif#define    MAX_MESSAGEBOX_ICON_NUM    4
InBlock.gif
UINT MessageBoxButton[] =
InBlock.gif{
InBlock.gif  MB_OK,
InBlock.gif  MB_OKCANCEL,
InBlock.gif  MB_ABORTRETRYIGNORE,
InBlock.gif  MB_YESNOCANCEL,
InBlock.gif  MB_YESNO,
InBlock.gif  MB_RETRYCANCEL
InBlock.gif};
InBlock.gif
UINT MessageBoxDefaultButton[] =
InBlock.gif{
InBlock.gif  MB_DEFBUTTON1,
InBlock.gif  MB_DEFBUTTON2,
InBlock.gif  MB_DEFBUTTON3,
InBlock.gif  MB_DEFBUTTON4
InBlock.gif};
InBlock.gif
UINT MessageBoxIcon[] =
InBlock.gif{
InBlock.gif  MB_ICONHAND,
InBlock.gif  MB_ICONQUESTION,
InBlock.gif  MB_ICONEXCLAMATION,
InBlock.gif  MB_ICONASTERISK
InBlock.gif};
InBlock.gif
/*共有的情况总数为6*4*4 = 96种*/
InBlock.gif int MyMessageBox(HWND hWnd,LPCTSTR lpText,LPCTSTR lpCaption,UINT UType)
InBlock.gif{
InBlock.gif  UINT myType = 0;
InBlock.gif  
InBlock.gif   for ( int i = 0; i < MAX_MESSAGEBOX_BUTTON_NUM; ++i)
InBlock.gif  {
InBlock.gif     /*这里判断出来了按钮风格*/
InBlock.gif     if (MessageBoxButton[i] == (UType & 0xF))
InBlock.gif    {
InBlock.gif      myType = MessageBoxButton[i];
InBlock.gif       break;
InBlock.gif    }
InBlock.gif  }
InBlock.gif
   for ( int j = 0; j < MAX_MESSAGEBOX_DEFAULT_BUTTOM_NUM; ++j)
InBlock.gif  {
InBlock.gif     /*这里判断出来了默认按钮*/
InBlock.gif     if (MessageBoxDefaultButton[j] == (UType & 0xF00))
InBlock.gif    {
InBlock.gif      myType |= MessageBoxDefaultButton[j];
InBlock.gif       break;
InBlock.gif    }
InBlock.gif  }
InBlock.gif
   for ( int k = 0; k < MAX_MESSAGEBOX_ICON_NUM; ++k)
InBlock.gif  {
InBlock.gif     /*这里判断出来了显示图标*/
InBlock.gif     if (MessageBoxIcon[k] == (UType & 0xF0))
InBlock.gif    {
InBlock.gif      myType |= MessageBoxIcon[k];
InBlock.gif       break;
InBlock.gif    }
InBlock.gif  }
InBlock.gif
   return  MessageBox(hWnd,lpText,lpCaption,myType);
InBlock.gif}
InBlock.gif
int APIENTRY WinMain(HINSTANCE hInstance,
InBlock.gif                                         HINSTANCE hPrevInstance,
InBlock.gif                                         LPSTR         lpCmdLine,
InBlock.gif                                         int             nCmdShow)
InBlock.gif{
InBlock.gif     // TODO: Place code here.
InBlock.gif  
InBlock.gif  MyMessageBox(NULL,( "我要努力!!!"), ( "ihome"), MB_YESNO | MB_ICONQUESTION | MB_DEFBUTTON2);
InBlock.gif   return 0;
InBlock.gif}