惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Help Net Security
博客园 - Franky
GbyAI
GbyAI
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
爱范儿
爱范儿
IT之家
IT之家
酷 壳 – CoolShell
酷 壳 – CoolShell
aimingoo的专栏
aimingoo的专栏
博客园_首页
MongoDB | Blog
MongoDB | Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Recent Announcements
Recent Announcements
Scott Helme
Scott Helme
有赞技术团队
有赞技术团队
M
MIT News - Artificial intelligence
C
CERT Recently Published Vulnerability Notes
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Jina AI
Jina AI
F
Fortinet All Blogs
N
Netflix TechBlog - Medium
L
LangChain Blog
L
LINUX DO - 最新话题
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
H
Hacker News: Front Page
MyScale Blog
MyScale Blog
P
Palo Alto Networks Blog
G
Google Developers Blog
Google DeepMind News
Google DeepMind News
AI
AI
T
Troy Hunt's Blog
Microsoft Azure Blog
Microsoft Azure Blog
阮一峰的网络日志
阮一峰的网络日志
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Vercel News
Vercel News
Microsoft Security Blog
Microsoft Security Blog
罗磊的独立博客
S
Secure Thoughts
大猫的无限游戏
大猫的无限游戏
博客园 - 叶小钗
人人都是产品经理
人人都是产品经理
Blog — PlanetScale
Blog — PlanetScale
博客园 - 司徒正美
Apple Machine Learning Research
Apple Machine Learning Research
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 三生石上(FineUI控件)
S
Security @ Cisco Blogs
Cloudbric
Cloudbric
E
Exploit-DB.com RSS Feed
Attack and Defense Labs
Attack and Defense Labs

博客园 - 饽饽

C语言指针的用法 CRC 循环冗余校验码 (VC编程) 无线网卡或笔记本找不到网络的一个原因 (one reason of your laptop cannot find wireless network) 电脑能够上QQ,可以ping IP,玩网络游戏,就是不能上网,收发电子邮件的解决办法 有关学校的打油诗 CMPP2.0 协议SP端的·NET开发 C++中的虚函数(virtual function) - 饽饽 - 博客园 MIMO的文章 VC++调用其它语言编写的程序 - 饽饽 - 博客园 VC++调用其它程序2 - 饽饽 - 博客园 Vc编程基础 VC基础教程 基于WINSOCK控件的VC网络通讯程序 VISCAL C++下WINSOCK CONTROL类(ACTIVEX)的使用 用Winsock实现语音全双工通信使用 socket编程原理 VC常用技巧集锦 windows网络编程 用Winsock控件实现点对点通信
VC MFC基本控件的使用
饽饽 · 2005-05-19 · via 博客园 - 饽饽

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”。

编译后运行。


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