MFC弹出任务对话框

新建TaskDemo1名称的MFC application,并且选择基于对话框的应用程序。

在stdafx.h头文件中包含一个头文件:

#include <afxtaskdialog.h>    //创建消息对话框

在资源视图中添加两个字符串资源:


在对话框中删除所有插件,并且添加一个按钮为Task。右击添加事件处理程序


双击找到以下函数:


修改为以下内容:

void CTaskDemo1Dlg::OnBnClickedButton1()
{
  // TODO: 在此添加控件通知处理程序代码
  CString strMessage(L"Do you want to save your changes to the document?");//message
  CString strDialogTitle(L"Save document");//消息对话框的标题
  CString strMainInstruction(L"Save document options");//消息对话框的主指令

  CString expandLabel(L"Hide extra information");//定义
  CString collapsedLabel(L"Show extra information");
  CString expansionInfo(L"You can select to save your document either as XML or binary. You should prefer to save as XML as this is the new standard format.");//扩展区的信息
   //


  if(CTaskDialog::IsSupported())//判断是否支持消息对话框,通过类CTaskDialog的静态函数IsSupported
  {
	CTaskDialog taskDialog(strMessage, strMainInstruction, strDialogTitle, TDCBF_OK_BUTTON);//创建消息对话框、任务对话框
	taskDialog.SetMainIcon(TD_INFORMATION_ICON);//设置对话框的主图标
	taskDialog.SetCommonButtons(TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);//设置对话框的common按钮
	taskDialog.LoadCommandControls(IDS_SAVE_OPTION1,IDS_SAVE_OPTION2); //设置commandcontrols,把前边设置的字符串资源添加上。
	taskDialog.SetExpansionArea(expansionInfo,collapsedLabel, expandLabel); //设置扩展区域
	taskDialog.SetFooterText(L"Note: If you don't choose to save your changes will be lost");//设置底部文本
	taskDialog.SetVerificationCheckboxText(L"Remember your seletion");//设置一个父选框
	
	
	INT_PTR result = taskDialog.DoModal();//显示任务对话框,测试返回值
	if(taskDialog.GetVerificationCheckboxState())//判断消息对话框中的父选框是否被选中
	{
	  AfxMessageBox(L"You selectec the verification checkbox");//输出消息框

	}
	switch(result)//任务对话框的返回值进行判断,用switch 来判断
	{
	case IDS_SAVE_OPTION1://判断为第一个字符串资源
	  AfxMessageBox(L"You choose to save as XML");
	  break;
	case IDS_SAVE_OPTION2://判断为第二个字符串资源
	  AfxMessageBox(L"You choose to save as binary");
	  break;
	case IDNO://消息框来说明情况,单击no按钮的话
	  AfxMessageBox(L"You choose not to save");
	  break;
	case IDCANCEL://如果为cancel时
	  AfxMessageBox(L"You choose to cancel");
	  break;
	default://impossible case
		ASSERT(FALSE);//否则是不可能的情况,直接判定出差
		break;
	}

  }

  else
	AfxMessageBox(strMessage);//如果不支持任务对话框,就用消息对话框
}

设置完毕。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值