按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
的。
图9。 13 应用程序MappingConverter的主对话框
下面的步骤讲述了工具MappingConverter的创建。
1。 使用AppWizard创建一个基于对话框的MFC应用应用程序,按图修
改应用程序的主对话框。
各主要控件的ID如表9。6所示。
表9。 6 控件属性列表
控件 ID 属性
“单位”组合 IDC_BO1 Type:Drop
框 List
Sort:假
…………………………………………………………Page 579……………………………………………………………
“值”文本编 IDC_EDIT1
辑框
“转换”按钮 IDOK
列表控件 IDC_LIST1 View:Report
Sort:None
“物理的”单 IDC_RADIO1 Group:真
选钮
“逻辑的”单 IDC_RADIO2
选钮
按图9。14设置各控件的Tab Order。
图9。 14 各控件的Tab Order
在组合框IDC_BO1的属性对话框的Data选项卡内输入以下的列表
项:
MM_HIENGLISH (0。001英寸)
MM_LOENGLISH (0。01英寸)
MM_HIMETRIC (0。01毫米)
MM_LOMETRIC (0。1毫米)
MM_TEXT (象素)
MM_TWIPS (缇)
磅
英寸
厘米
…………………………………………………………Page 580……………………………………………………………
水平对话框单位 (系统字体)
垂直对话框单位 (系统字体)
注意各列表项的排列顺序,如果顺序出错,将导致在单位转换是进行
不正确的换算,这也是将组合框的Sort属性设置为假的缘故。
按图9。15映射对话框的控件到类CMappingConverterDlg的成员变量。
由于我们仅使用编辑框IDC_EDIT1来输入数值,因此我们将它映射到
类型为float的成员变量m_fValue;同时,我们将单选钮组
IDC_RADIO1映射为类型为int的成员变量m_nradio,当变量m_nradio
的值为0时表示单选钮 “逻辑的”被选中,变量值为1时表示单选钮
“物理的”被选中。
图9。 15 映射成员变量到对话框控件
按下面的代码修改类CMappingConverterDlg的成员函数
OnInitDialog:
/////////////////////////////////////////////////////////////////////////////
// CMappingConverterDlg 消息处理函数
BOOL CMappingConverterDlg::OnInitDialog()
{
// 设置默认选中的单选钮为 “逻辑的”
m_nradio=0;
…………………………………………………………Page 581……………………………………………………………
CDialog::OnInitDialog();
// 在系统菜单中添加 “关于”菜单项
// IDM_ABOUTBOX 必须在系统命令的范围内
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX 《 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu。LoadString(IDS_ABOUTBOX);
if (!strAboutMenu。IsEmpty())
{
pSysMenu…》AppendMenu(MF_SEPARATOR);
pSysMenu…》AppendMenu(MF_STRING; IDM_ABOUTBOX; strAboutMenu);
}
}
// 设置对话框的图标。当应用程序的主窗口不是对话框时框架会 自动进行这个过程
SetIcon(m_hIcon; TRUE); // Set big icon
SetIcon(m_hIcon; FALSE); // Set small icon
// TODO: 添加额外的初始化代码
// 在列表控件中添加两列: “单位”和 “值”
m_lst。InsertColumn(0; 〃单位〃; LVCFMT_LEFT; 180; 0);
m_lst。InsertColumn(1; 〃值〃; LVCFMT_LEFT; 100; 1);
// 初始化列表控件中的项所用的字符串数组
char *szItemTexts''={〃MM_HIENGLISH (0。001英寸)〃;
〃MM_LOENGLISH (0。01英寸)〃;
…………………………………………………………Page 582……………………………………………………………
〃MM_HIMETRIC (0。01毫米)〃;
〃MM_LOMETRIC (0。1毫米)〃;
〃MM_TEXT (象素)〃;
〃MM_TWIPS (缇)〃;
〃磅〃;
〃英寸〃;
〃厘米〃;
〃水平对话框单位 (系统字体)〃;
〃垂直对话框单位 (系统字体)〃};
// 初始化列表控件中的项
for (int i=0; i