辍笔MFC之基础运用(1)

话说FPGA是一种多么奇妙的东西,它强大的逻辑性和并行性让我深深爱上了它,并一直以来都在学习并研究它的应用。但是,为了将FPGA的应用发挥到极致,我希望把它与计算机软件(即上位机)结合起来,于是学习一段时间的VC++。下面我将给出在学习中所做的笔记~~~

【1】对话框应用程序的创建

1、打开VC++6.0,接着在“File→New...”的Projects选项卡中新建工程,如图1.1所示。

图1.1

2、选择OK按钮,出现新建工程第一步,如图1.2所示。

图1.2

3、由于本次创建的是基于对话框的应用程序,后面的参数可以不用设置,故直接选择Finish按钮完成工程的建立,如图1.3所示。

图1.3

【2】创建并显示对话框

1、对话框显示方法主要有两种:模式对话框和非模式对话框。在模式对话框中,如果用户不关闭该对话框,将不能切换到程序的其他对话框中;而在非模式对话框中,用户可以随意的进行对话框的切换。

2、新建一个对话框类,如图2.1和2.2所示。

图2.1

图2.2

3、双击确定按钮并添加单击事件,如图2.3和图2.4所示。

图2.3

图2.4

4、我们的任务是将CStudent类中的对话框在本工程的主窗口的单击事件中显示出来。首先要在主窗口类的源文件中引用CStudent类中的头文件,如图2.5所示。

图2.5

5、创建和显示模式对话框。为单击事件添加代码,如图2.6所示。

图2.6

6、在创建模式对话框时,还可以采用在堆中的方式来为对话框分配空间及使用new运算符来构建对话框对象,使用delete来释放对话框对象。如图2.7所示。

图2.7

7、运行调试

8、创建和显示非模式对话框。在主对话框类的头文件中包含CStudent类的头文件并在主对话框类中定义一个非模态对话框类的成员,如图2.8所示。

图2.8

9、访问成员m_Student,调用create方法来创建对话框资源,如图2.9所示。

图2.9

10、运行便可实现非模式对话框,但第二次按确定按钮时会出现一个问题,如图2.10所示。

图2.10

11、出现图2.10问题的原因是对话框并未真正地被销毁,而是被隐藏了,如果再次创建对话框将出错。解决的方式为使用IsWindow函数来判断当前的对话框对象m_Student是否关联了一个对话框。如果没有关联,则调用Create方法来创建对话框;如果已经关联了,则不调用Create方法来创建对话框,而是直接调用ShowWindow方法来显示对话框。如图2.11所示。

图2.11

12、运行调试,此时没问题。

【3】添加对话框成员和成员函数

1、添加成员和成员函数主要有2种方式,第一种方式是手工添加,第二种方式是利用向导添加。

2、手工添加成员变量,如图3.1所示。

图3.1

3、手工添加成员函数,如图3.2所示。

图3.2

4、添加成员函数后还需要在对话框类的源文件中添加ShowDlg()的实现部分,如图3.3所示。

图3.3

5、利用向导添加成员变量,如图3.4和图3.5所示。

图3.4

图3.5

6、利用向导添加成员函数,如图3.6和图3.7所示。

图3.6

图3.7

7、添加消息处理函数,该消息处理函数不需要用户来调用,而是系统自动调用的。以按钮为例,在双击对话框中的按钮时,将会添加按钮的单击事件消息处理函数,此时系统在对话框的消息映射部分自动添加映射宏,如图3.8所示,因此将按钮的ID与消息处理函数进行了关联。

图3.8

8、手动添加命令消息处理函数。首先需要定义一个消息常量值,为了防止与系统消息值相同,可以以WM_USER消息值为基础递增。例如:#define POSCHANGE WM_USER+1。

9、然后向对话框中添加一个成员函数void OnPosChanged(),最后添加自定义消息CM_POSCHANGE的消息映射宏,将CM_POSCHANGE消息与OnPosChanged成员函数关联。

【4】使用类向导为空间关联成员变量

1、创建一个基于对话框的应用程序,并向对话框中添加对应的控件及ID,如图4.1和图4.2所示。

图4.1

图4.2

2、设置组合框的内容(其中换行需要按“CTRL+ENTER”组合键)及风格,如图4.3和图4.4所示。

图4.3

图4.4

3、为控件关联成员变量(以操作数1为例,其他类似),按“CTRL+W”组合键打开类向导,如图4.5、图4.6和图4.7所示。

图4.5

图4.6

图4.7

4、接下来为对话框添加程序,首先在对话框的头文件中添加类模板,如图4.8所示。

图4.8

5、添加计算按钮的单击事件,如图4.9所示。

图4.9

哈哈,今晚先介绍到这吧。未完待续~~~

时间: 2024-10-02 20:53:31

辍笔MFC之基础运用(1)的相关文章

MFC绘图基础——上机操作步骤

软件环境:VC++6.0 目的:熟悉基本的MFC框架搭建和了解界面 一,MFC上机操作步骤 1,在Windows桌面上运行VC++6.0. 2,新建项目工程文件. 3,在MFC 应用程序向导-步骤1 对话框中,选中单文档单选按钮,其余保持默认. 4,弹出新建工程信息的对话框,单击确定. 5,完成上述步骤后,工程Testone的MFC框架已经生成. 6,在集成开发环境的左侧工作窗口中有3个标签页. ClassView 显示所创建的类和成员函数 ResourceView 显示所创建的资源 FileV

【MFC】程序框架及基础知识

1. 首先,贴一个简单的Win32的Hello World程序,这是学MFC的基础. 如果没有学过Win32,请自行补充相关知识. #include <windows.h> LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) { static TCH

MFC DAY01

一 MFC课程的安排 MFC - 微软基础类库和框架 COM - 组件对象的编程原理和应用 ADO - WINDOWS下 数据库的访问和操作 SOCKET - WINDOWS下网络通信编程二 需要掌握的技能 熟练掌握 断点调试 程序 学会使用 call stack(调用堆栈)查看函数之间的调用关系 熟练掌握 vc下的 向导 和 工具 借助MSDN ,了解整个程序的流程.三 对大家的期望 不要缺课,课程连续性极强. 多思考,多练习. 营造良好的课堂气氛.**********************

[游戏学习22] MFC 井字棋 双人对战

>_<:太多啦,感觉用英语说的太慢啦,没想到一年做的东西竟然这么多.....接下来要加速啦! >_<:注意这里必须用MFC和前面的Win32不一样啦! >_<:这也是第一次出现MFC游戏,其框架和逻辑的写法和Win32有很大的区别,建议先看一下MFC的基础再理解代码: >_<:TicTac.h 1 #define EX 1 //该点左鼠标 2 #define OH 2 //该点右鼠标 3 4 class CMyApp : public CWinApp 5 {

vs2013_MFC使用文件之15.mfc 按钮CBitmapButton的使用

本文是居于对话框的 笔者使用mfc撑死2个星期,不过这是有c++基础的前提下接触mfc,昨天看到了网上对qt creator的评论,感觉好高大上,回去试了一下后发现,qt需要mfc的基础,若是直接接触qt的话会比较难,毕竟mfc是在vs的平台下,大家学起来会比较顺手. 回到正题,今天研究了下怎么使用mfc中的位图按键,发现实现方法挺多,但是对于小白来说,很多作者认为简单的都会略过,恰巧那些简单的就是我不会的,结果又看不懂.除了mfc自有的CBitmapButton外,在网上还看到有关于CButt

VC学习笔记---ATL MFC CLR三个库的区别

MFC.ATL和CLR是VC2005内置的三大库,涵盖了Windows的各种开发方法和开发应用.当然关于C++开发的库不止这三个,不过这三个是微软推荐. 从编程所处层次而言,WIN32为最底层,其次是MFC,然后是CLR.WIN32 winAPI MFC MFC类库 CLR .net库 WIN32常规就是不用MFC,使用API函数编的程序. MFC库有很多年的历史了,MFC是基于Windows API 的简单封装.其核心架构基于"Document/View"架构(20年前被认为很潮流的

VS2008中 ATL CLR MFC Win32 区别

ATL用于编写COM程序,CLR是.NET的公共语言运行库,MFC是指MFC类库,MFC程序是用这些类库做出的程序,WIN32常规就是不用MFC,使用API函数编的程序.MFC.ATL和CLR是VC2005内置的3大库,涵盖了windows的各种开发方法和开发应用.当然关于C++开发的库不止这3个,不过这3个是微软推荐.从编程所处层次而言,WIN32为最底层,其次是MFC.然后是CLR.WIN32 winAPI MFC MFC类库 CLR .net库 1. WIN32常规就是不用MFC,使用AP

【mfc】学生信息管理,实现List控件节点的增删改查

之前在mfc这个专栏里面,写了很多关于win32的程序, 其实也没什么的,win32是mfc的基础, mfc只是win32的扩展,系统自带的扩展,新建一个mfc如同新建一个win32程序,不过这个win32程序一开始就带了很多空函数框架. 一.基本目标 要建立如下图所示的学生信息管理mfc程序,当然这个程序以后应该考虑连接数据库,access,sql server都可以, 同时连同<[mfc]用对话框分页实现用户登录>(点击打开链接),让用户登录之后才能够管理信息,当然这是后话. 1.这个程序

ATL CLR MFC Win32 常规 的区别

ATL用于编写COM程序,CLR是.NET的公共语言运行库,MFC是指MFC类库,MFC程序是用这些类库做出的程序,WIN32常规就是不用 MFC,使用API函数编的程序. MFC.ATL和CLR是VC2005内置的3大库,涵盖了windows的各种开发方法和开发应用.当然关于C++开发的库不止这3个,不过这3个是微 软推荐.从编程所处层次而言,WIN32为最底层,其次是MFC.然后是CLR. WIN32 winAPI MFC MFC类库 CLR .net库 1. WIN32常规就是不用MFC,