2022年MFC图形界面编程入门教程 .pdf
MFC 图形界面编程入门教程MFC(Microsoft Foundation Classes )是微软提供的用于简化编程的一个类库,其使用面向对象的思想将Windows 的图形界面编程接口封装到若干个类中,并且提供了一个可视化的编程环境,方便的程序员的开发。使用 MFC 可以方便地创建基于对话框或文档视图的程序,在其上添加各种控件(按钮、编辑框等等) ,通过消息映射机制使控件操作和某个函数对应起来。第一章如何添加按钮和编辑框工程文件见:演示工程.rar 新建工程名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 10 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 10 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 10 页 - - - - - - - - - 到现在, 我们的工作都是在资源编辑器里完成的,主要针对的是界面方面。下面我们将为按钮添加一些处理代码,比如弹出一个对话框,显示我们在编辑框里输入的文字。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 10 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 10 页 - - - - - - - - - 点击 OK ,完成添加变量操作。下面添加按钮的响应函数右击按钮,选择建立类向导,弹出的对话框要求我们为按钮响应函数取个名字。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 10 页 - - - - - - - - - 我们将函数名设为OnShow,点击 OK 后,可以看到ClassWizard 对话框下半部分多了一行信息,双击它或者点击右边的Edit Code 按钮就在里面添加如下代码:UpdateData(TRUE); AfxMessageBox(m_mystring); 这两个函数都是由MFC 提供的。调用 UpdateData(TRUE) 将我们在编辑框输入的文本更新到其对应的变量中 (即 m_mystring ) ,AfxMessageBox(m_mystring) 可以将变量的内容显示到消息框中。现在编译运行程序,在编辑框中如入一些内容,点击显示按钮,效果如下:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 10 页 - - - - - - - - - 第二章点名程序中的控件工程文件见:点名程序工程.rar 编辑框学号和姓名的显示使用了只读的编辑框,和普通编辑框的添加方式相同,只读属性可以在其属性中设置(右下) :与前面的例子不同的还有其是用于显示文本而输入文本,/下面的 SetDlgItemText函数能够将第二个参数的值设置为/第一个参数对应的编辑框的内容/仅使用 SetDlgItemText不能让内容显示出来/还需要使用UpdateWindow函数刷新窗口/将变量的值设为编辑框显示的内容lpObject-SetDlgItemText(IDC_NUMBER,curr-number);lpObject-SetDlgItemText(IDC_NAME, curr-name);UpdateWindow();/这个函数实现了窗口内容的刷新下拉列表我们使用了下拉列表来选择班级。下拉列表形状与编辑框类似,在其右端有一个三角形,点击可以弹出多个选项,如下图:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 10 页 - - - - - - - - - 如何添加选项在程序开始执行, 初始化对话框的时候,程序读入目录下所有符合规则的名单文件,将其文件名作为下拉列表中的一个项插入。CComboBox* combownd1=NULL; /获取 combobox窗口指针combownd1=(CComboBox*)GetDlgItem(IDC_CLASSLIST); while (bWorking) bWorking = finder.FindNextFile(); if (finder.IsDots() continue; if (finder.IsDirectory() continue; CString className = finder.GetFileTitle(); combownd1-AddString(className);/添加一个选项 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 10 页 - - - - - - - - - 点名按钮点名按钮的添加与前面的例子类似,同样要为其添加响应函数,代码如下:/先将按钮显示的文本设为“开始”GetDlgItem( IDOK )- SetWindowText( 开始 );if( isStopIt = TRUE ) /如果按按钮前处于停止状态/开启线程,进行名单的滚动,/将按钮显示的文本设为“停止”GetDlgItem( IDOK )- SetWindowText( 停止 );else /如果按按钮前处于滚动状态,/将按钮显示的文本设为“停止”GetDlgItem( IDOK )- SetWindowText( 开始 ); /将显示的焦点放在下拉列表上,方便使用方向键选择( CButton*) GetDlgItem( IDC_CLASSLIST)- SetFocus(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 10 页 - - - - - - - - -