crazybird

【原创】辍笔MFC之基础运用(1)

0
阅读(1984)

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

 

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

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

1.1

                                        图1.1

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

1.2

                               图1.2

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

1.3

                                     图1.3

【2】创建并显示对话框

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

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

2.1

              图2.1

2.2

             图2.2

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

2.3

                               图2.3

2.4

                                图2.4

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

2.5

                                  图2.5

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

2.6

                                图2.6

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

2.7

                                 图2.7

7、运行调试

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

2.8

                                 图2.8

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

2.9

                                图2.9

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

2.10

                              图2.10

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

2.11

                              图2.11

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

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

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

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

3.1

                                 图3.1

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

3.2

                                图3.2

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

3.3

                                图3.3

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

3.4

            图3.4

3.5

                                 图3.5

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

3.6

               图3.6

3.7

                              图3.7

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

3.8

                                图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.1

4.2

                               图4.2

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

4.3

                                   图4.3

4.4

                                 图4.4

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

4.5

                                图4.5

4.6

                                图4.6

4.7

                                   图4.7

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

4.8

                                    图4.8

 

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

4.9

4.10

                                 图4.9

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