摘自网址:http://czvc.com/down.asp?id=96
演示截图:
代码简介或代码解析:
       
消息框大全

实现步骤:
1 创建一个DLG程序
2 添加5个新的对话框资源ID分别为:MsgBoxSimple,MsgBoxOption,MsgBoxCustom,并调整其大小使他们尺寸一样
3 为2中所添加的对话框创建新的类
class CPageSimple : public CPropertyPage
class CPageOption : public CPropertyPage
class CPageCustom : public CPropertyPage
保存在property.h和property.cpp中。

4 在ShowBmpInPropertyBtnAreaDlg.h中加入
#include "property.h"
...
public:
CPropertySheet m_MyPropertySheet;         //定义属性表变量
CPageSimple m_page1;                      //以下定义属性页成员变量
CPageOption m_page2;
CPageCustom m_page3;

5 在对话框IDD_MESSAGEBOXES模板中加入一个Picture控件,ID设为IDC_PROPSHEET,并调整其大小使其与对话框MsgBoxSimple大小相似
6 在CMessageBoxesDlg::OnInitDialog()中加入

    //属性表和属性页的成员变量我已经在头文件中定义过了
    //现在把属性页加入到属性表中
    m_MyPropertySheet.AddPage(&m_page1);
    m_MyPropertySheet.AddPage(&m_page2);
    m_MyPropertySheet.AddPage(&m_page3);

    //显示非摸态的属性表
    m_MyPropertySheet.Create(this, WS_CHILD | WS_VISIBLE, 0);

    //当对话框搜索下一个Tab项时,WS_EX_CONTROLPARENT标记避免了死循环发生的可能性
    //他可以让对话框搜索到属性表中的子窗体控件,就象对话框窗体上的其他普通控件一样。
    m_MyPropertySheet.ModifyStyleEx (0, WS_EX_CONTROLPARENT);

    //允许用户TAB键切换到属性表
    m_MyPropertySheet.ModifyStyle( 0, WS_TABSTOP );

    //显示属性表
    CRect rcSheet;
    GetDlgItem( IDC_PROPSHEET )->GetWindowRect( &rcSheet );
    ScreenToClient( &rcSheet );
    m_MyPropertySheet.SetWindowPos( NULL, rcSheet.left-7, rcSheet.top-7, 0, 0, 
SWP_NOZORDER | SWP_NOSIZE | SWP_NOACTIVATE );

7 添加一些按钮,映射各按钮的单击消息,并为响应函数编写代码如下
void CPageSimple::OnSimplestBtn() 
{
MessageBox("这是最最简单的消息框");
}

void CPageSimple::OnSimpleBtn() 
{
AfxMessageBox("另一个简单的消息框");
}

void CPageOption::OnOkBtn() 
{
MessageBox("仅仅一个按钮确定的消息框",
      "信息提示消息框",
      MB_OK|MB_ICONINFORMATION);

    m_Message = "你只是确认了一下";
    UpdateData(FALSE);
}

void CPageOption::OnOkcancelBtn() 
{
int Response;

    Response =
    MessageBox("在这个消息框中你可以选择确定和取消"
      "\n\n你也可以在此写下对行信息文本"
      "\n这是你的权利",
      "选择消息框",
      MB_OKCANCEL|MB_ICONASTERISK);

    if( Response == IDOK )
    {
      m_Message = "你选择了确定";
      UpdateData(FALSE);
    }
    else
    {
      m_Message = "你取消了";
      UpdateData(FALSE);
    }
}

void CPageOption::OnYesnoBtn() 
{
int Response;
  
Response =
MessageBox("你吃过了吗?我意思是指从昨天到现今",
"信息提示", MB_YESNO|MB_ICONQUESTION);
    
  if( Response == IDYES )
  {
    m_Message = "那么,我不需要再给你什么了";
    UpdateData(FALSE);
  }
  else
  {
    m_Message = "那么走吧,正好我也没有吃,咱们一块去吃火锅!";
    UpdateData(FALSE);
  }
}

void CPageOption::OnYesnocancelBtn() 
{
int Response;
    
    Response =
    MessageBox("当你删除一个目录的时候,或者一个文档改动后,"
"\n退出程序的时候,这个消息框就会出现",
      "文档保存提示消息框",
      MB_YESNOCANCEL|MB_ICONWARNING);
      
    if( Response == IDYES )
    {
      m_Message = "执行操作.";
      UpdateData(FALSE);
    }
    else if( Response == IDNO )
    {
      m_Message = "不操作";
      UpdateData(FALSE);
    }
    else
    {
      m_Message = "取消";
      UpdateData(FALSE);
      }
}

void CPageOption::OnRetrycancelBtn() 
{
int Response;
    
    Response =
    MessageBox("失败乃成功之母"
      "\n请Try吧:)",
      "重试提示消息框",
      MB_RETRYCANCEL|MB_ICONWARNING);

    if( Response == IDRETRY )
    {
      m_Message = "理所当然,重新来过!";
      UpdateData(FALSE);
    }
    else
    {
      m_Message = "你屈服了";
      UpdateData(FALSE);
    }
}

void CPageOption::OnAbortretryignoreBtn() 
{
int Response;

    Response =
    MessageBox("这个就是最最令人厌恶的消息框了"
      "\n\n它的出现往往意味着程序出现了致命的错误,你不得不终止它,再次运行",
      "灾难消息框",
      MB_ABORTRETRYIGNORE|MB_ICONSTOP);

    if( Response == IDRETRY )
    {
      m_Message = "理所当然,重新来过!";
      UpdateData(FALSE);
    }
    else if( Response == IDIGNORE )
    {
      m_Message = "成大事者必不拘小姐";
      UpdateData(FALSE);
    }
    else
    {
      m_Message = "算你狠!";
      UpdateData(FALSE);
    }
}

void CPageCustom::OnSeconddefaultBtn() 
{
int BtnClicked;

BtnClicked = 
MessageBox("注意看看默认按钮是否你需要的之后在回车不迟",
"默认按钮消息框",
MB_YESNOCANCEL|MB_ICONINFORMATION|MB_DEFBUTTON2);

if( BtnClicked == IDYES )
MessageBox("你按下了第一个按钮: 是");
else if( BtnClicked == IDNO )
MessageBox("你按下了第二个按钮: 否 即你接受了默认选择.");
else
MessageBox("你按下了第三个按钮: 取消");
}

void CPageCustom::OnThirddefaultBtn() 
{
int BtnClicked;

BtnClicked = 
MessageBox("注意看看默认按钮是否你需要的之后在回车不迟",
"默认按钮消息框",
MB_ABORTRETRYIGNORE|MB_ICONSTOP|MB_DEFBUTTON3);

if( BtnClicked == IDABORT )
MessageBox("你按下了第一个按钮: ABORT");
else if( BtnClicked == IDRETRY )
MessageBox("你按下了第二个按钮: RETRY");
else
MessageBox("你忽略了错误即你情愿接受默认选择");
}