TimeMachine

导航

VC MFC基本控件的使用

construct.gif (1627 bytes)《面向对象程序设计》可视化编程

   (Copyrights © CHM21st)

  MFC 开发 Windows 应用程序入门

Visual C++ 6.0 开发环境

  VC++ 是微软 Visual Studio 的组件之一。它具有编辑、编译、调试等多项功能,是用于开发 Windows 应用程序的重要工具。

VC++ 主窗口构成

VC++ 工具栏

VC++ 菜单栏

工作区和工程项目

  Project(工程项目)
  在学习 C 语言时,已经学过 Project(可译作工程或项目)的概念。开发一个应用程序,就是一个 Project。在 C 语言中,如果程序较小,只有一个 C 源文件,可以不建立 Project 文件。当程序较大,尤其是多人共同开发时,必须建立 Project。在 Project 中,可能会有不同类型的文件,如 C 文件,H 文件,lib 文件等。
  用 VC++ 开发应用程序时,必须有 Project。

  Workspace(工作区)
  用 VC++ 开发应用程序时,先建立工作区,然后在工作区内建立 Project。在初学阶段,一个工作区内,一般只有一个 Project。
   注意保存工作区文件。继续工作应先打开工作区。

用 MFC 开发 Windows 应用程序

应用程序界面形式的分类

  1.单文档界面(SDI,Single Documant)
  应用程序运行时,只能打开一个文档。例如“记事本”或“写字板”。

  2.多文档界面(MDI,Multiple Document)
  应用程序运行时,可以同时打开多个文档。例如 Word 或 Excell。

  3.基于对话框(Dialog based
  应用程序显示一个简单的对话框来处理用户的输入。例如“计算器”。

MFC AppWizard ()

  MFC(Microsoft Foundation Class)微软基本类库提供了200多个编写好的类,Windows 应用程序的开发者可以直接实例化这些类,用于自己的程序,也可以在此基础上派生自己的类。这可以避免重复性工作,提高开发效率。

  基于 MFC 的 AppWizard(应用程序编程向导)可以为开发人员生成基本的应用程序框架,使编程工作易于进行。


例1.1 开发一个单文档的“记事本”程序

启动 VC++,选择 New,在 Projects 选项卡中点选 MFC AppWizard(exe),选择(或输入)子目录,输入工程名,单击 OK。

在 Step 1 选择 Single Document。在 Step 6,利用下拉式列表框选择 CEditView 作为视图类的基类。

编译后运行。


例1.2 单选钮的应用。界面如下:

本题的程序可在上一题程序的基础上进行。

添加 Radio Button (单选钮)。在第一个单选钮的属性(Properties)中,选中 Group(将四个单选钮设为一组)。

利用 ClassWizard (类向导)将该组设置单选钮设成一个整型变量。

修改 OnOK 的程序代码:

void CV12Dlg::OnOK() 
{
	UpdateData(TRUE);
	if(m_nRadio==0) m_nResult=m_nOp1+m_nOp2;
	if(m_nRadio==1) m_nResult=m_nOp1-m_nOp2;
	if(m_nRadio==2) m_nResult=m_nOp1*m_nOp2;
	if(m_nRadio==3) m_nResult=m_nOp1/m_nOp2;
	UpdateData(FALSE);
}

编译后运行。


例1.3 各种控件的使用。界面如下:

在ClassWizard中设置变量:

程序如下:

(1) 移动滑块时在右侧文本框内显示数字:
void CV13Dlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
{
	UpdateData(TRUE);
	CSliderCtrl* slider=(CSliderCtrl*)pScrollBar;
	int pos=slider->GetPos();
	m_nEdit3=pos+pos/2+100;
	UpdateData(FALSE);
	CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
}

(2) 按下"OK"按钮显示信息:
void CV13Dlg::OnOK() 
{
	UpdateData(TRUE);
	CString msg;
	char s1[10];
	msg=m_sName;
	if(m_nRadio==0) msg+=" 男 ";
	if(m_nRadio==1) msg+=" 女 ";
	msg+=m_sAge;
	msg+="岁\r\n身高:";
	msg+=itoa(m_nHeight,s1,10);
	msg+="cm \r\n爱好:";
	if(m_bSport) msg+="体育 ";
	if(m_bMusic) msg+="音乐 ";
	if(m_bArt) msg+="美术 ";
	MessageBox(msg);
}

(3) 初始化对话框(加在InitInstance()函数中, 中间三行是添加的):
	CV13Dlg dlg;
	dlg.m_nRadio =0;
	dlg.m_sAge = "19";
	dlg.m_nHeight=100;
	m_pMainWnd = &dlg;

  说明:加了第二行程序, 打开对话框时, “性别”已选择为“男”。
  加了第三行程序, 打开对话框时, “年龄”显示“19”。
  加了第四行程序, 打开对话框时, “身高”显示“100”。

编译后运行。


作业:仿照例题编程序上机。


posted on 2005-05-19 15:06  饽饽  阅读(1869)  评论(0编辑  收藏  举报