MFC增强----任务对话框CTaskDialog类

 1 /**
 2     注意:从Windows Vista系统才开始支持CTaskDialog类,所以在使用时最好调用 CTaskDialog::IsSupported() 方法做判断
 3            同时:CTaskDialog类只对Unicode应用程序可用, 同时要添加头文件:include "afxtaskdialog.h"的支持
 4 */
 5 void CMainFrame::OnCtaskdialog()
 6 {
 7     if( CTaskDialog::IsSupported() )    // 判断是否支持CTaskDialog类
 8     {
 9         CTaskDialog taskDlg(_T(""), _T(""), _T(""));
10         taskDlg.SetContent(_T("SetContent方法设置
")
11             _T("还支持超链接到<a href="http:\\www.baidu.com">百度</a>."));  //可以这样续行写,仍然是连在一起的一句话,而且可以使用超链接
12         taskDlg.SetMainInstruction(_T("SetMainInstruction方法设置")_T("内容可以直接写?"));
13         taskDlg.SetWindowTitle(_T("SetWindow方法设置"));
14 
15         // 加入3个命令按钮
16         taskDlg.AddCommandControl(1, _T("Command1(ID=1)
Second line"));
17         taskDlg.AddCommandControl(2, _T("Command1(ID=2)	")_T("It is amazing!"));
18         taskDlg.AddCommandControl(3, _T("Command1(ID=3)	")_T("You are so clever!"));
19 
20         // 加入2个单选按钮
21         taskDlg.AddRadioButton(4, _T("Radio button1(ID=4)"));
22         taskDlg.AddRadioButton(5, _T("Radio button2(ID=5)"));
23 
24         // 加入一些可供用户选择显示或隐藏的解释消息
25         taskDlg.SetExpansionArea(_T("第一个参数:显示/隐藏消息功能的实现标题"), _T("第二个参数:点击扩展信息"),_T("第三个参数:点此隐藏信息"));
26         // 注意:第一个参数是在扩展信息打开时才出现的标题信息
27 
28         // 配置页脚文本和页脚图标
29         taskDlg.SetFooterIcon( MAKEINTRESOURCE( IDI_INFORMATION) );
30         taskDlg.SetFooterText(_T("Foot Text!支持超链接到<a href="http:\\www.baidu.com">百度</a>."));
31 
32         // 设置任务对话框的主图标
33         taskDlg.SetMainIcon(MAKEINTRESOURCE( IDI_ERROR) );
34 
35         // 向任务对话框添加一个进度条
36         taskDlg.SetProgressBarMarquee();
37         taskDlg.SetProgressBarRange(0, 100);
38         taskDlg.SetProgressBarPosition(30);
39 
40         // 在任务对话框的底部添加一个复选框
41         taskDlg.SetVerificationCheckboxText(_T("Always show this dialog?"));
42         taskDlg.SetVerificationCheckbox(TRUE);    // 默认选中
43 
44         int options = taskDlg.GetOptions();
45         options != TDF_ENABLE_HYPERLINKS | TDF_CALLBACK_TIMER;
46         taskDlg.SetOptions(options);
47 
48         taskDlg.DoModal();
49     }
50     else
51     {
52         MessageBox();        // 使用标准消息框
53     }
54 }

效果如下所示:

原文地址:https://www.cnblogs.com/dongsheng/p/3632221.html