////////////////////////////////序////////////////////////////////

大约三年前,学过一些简单的编程语言之后其实一直挺苦恼于所写的程序总是拘泥于用的编译器,脱离了编译环境基本没运行的可行性,故而写一个在任意windows电脑下都能运行的小软件便成为了一块心病。

大约两年前着手开始做本科毕业设计的时候接触到了MFC,写过一些代码,发现确实是挺容易入门也可以做出一些简单而漂亮的demo的,下面不多废话来做我们的第一个简单的可以发给爸妈使用的简单MFC小软件吧。

//////////////////////////////准备工作/////////////////////////

惯例放上编程所用软件VS2015下载地址:https://www.visualstudio.com/

//VS2010,VS2012也是类似的

值得注意的是这里采用C++编译,安装时务必勾选编程语言里的C++,如果不慎没安装,之后新建项目选择C++项目会提示安装,但会等挺久的

////////////////////////////正式开工/////////////////////////

第一步,新建项目  //新建项目--Visual C++ --MFC --MFC应用程序

这里比较习惯用基于对话框的MFC界面,要注意下右下角的MFC的使用,如果是在本机上可以选择动态库Dll的模式,如果想在别人并没有你的环境的情况下(比如给爸妈使用)则最好选择静态库中使用MFC,这样就相当于把dll也封装进了程序,从而程序会比DLL的略大一点~

到这步可以直接点完成然后生成如下界面:

首先改下说明,点击图片中的文字,在属性栏中找到对应的Caption便可以修改文字,这里准备做一个简单的打开计算器的功能。

下面我们来给按钮加上打开计算器的功能。

首先左击确定按钮看到属性栏的Caption改成“打开计算器”如图:

双击“打开计算器”按钮便可以跳转到按钮对应的功能定义位置进行代码的撰写。

修改代码如下:

void CFirst_MFCDlg::OnBnClickedOk()

{

// TODO: 在此添加控件通知处理程序代码

HINSTANCE hRslt = ShellExecute(NULL, _T("open"),

_T("calc.exe"),NULL,NULL,SW_SHOWNORMAL);

assert(hRslt > (HINSTANCE)HINSTANCE_ERROR);

}

之后需要在这个文件的最上方#include <assert.h>方便调用打开计算器的程序。

//////////////////到了这里可以测试下程序了~生成-生成解决方案,在release里有可以点开使用的EXE文件//////////

如果想添加新的控件,点击左侧的工具箱,例如我想加一个新的按钮来增加一个打开记事本的功能,就拖动button到界面上,修改名字成“打开记事本”

对应粘贴代码如下:

void CFirst_MFCDlg::OnBnClickedButton1()

{

// TODO: 在此添加控件通知处理程序代码

HINSTANCE hRslt = ShellExecute(NULL, _T("open"),

_T("notepad.EXE"),NULL,NULL,SW_SHOWNORMAL);

assert(hRslt > (HINSTANCE)HINSTANCE_ERROR);

}

再加上一个查看IP地址的button以及对应的代码如下:

void CFirst_MFCDlg::OnBnClickedButton2()

{

// TODO: 在此添加控件通知处理程序代码

// TODO: 在此添加控件通知处理程序代码Nslookup

HINSTANCE hRslt = ShellExecute(NULL, _T("open"),

_T("Nslookup.EXE"),NULL,NULL,SW_SHOWNORMAL);

assert(hRslt > (HINSTANCE)HINSTANCE_ERROR);

}

然后选择Release并生成解决方案,在项目对应的Release里可以看到生成的可以使用的EXE啦~

默认的目录如下:

实现结果如下: //一个可以发给爸妈使用的程序就完成啦~

最后祝大家编程愉快~
---------------------
作者:朱铭德
来源:CSDN
原文:https://blog.csdn.net/zmdsjtu/article/details/52311107
版权声明:本文为博主原创文章,转载请附上博文链接!

MFC入门(一)-- 第一个简单的windows图形化界面小程序(打开计算器,记事本,查IP)的更多相关文章

  1. scratch少儿编程第一季——01、初识图形化界面编程的神器

    各位小伙伴大家好: 说到2018年互联教育的热门事件,那就不得不提Scratch. 相信各位不关注信息技术领域的各位家长也都听说过这个东西. 对于小学阶段想要接触编程或信息技术学生来说,Scratch ...

  2. PySide——Python图形化界面入门教程(五)

    PySide——Python图形化界面入门教程(五) ——QListWidget 翻译自:http://pythoncentral.io/pyside-pyqt-tutorial-the-qlistw ...

  3. PySide——Python图形化界面入门教程(四)

    PySide——Python图形化界面入门教程(四) ——创建自己的信号槽 ——Creating Your Own Signals and Slots 翻译自:http://pythoncentral ...

  4. PySide——Python图形化界面入门教程(二)

    PySide——Python图形化界面入门教程(二) ——交互Widget和布局容器 ——Interactive Widgets and Layout Containers 翻译自:http://py ...

  5. PySide——Python图形化界面入门教程(一)

    PySide——Python图形化界面入门教程(一) ——基本部件和HelloWorld 翻译自:http://pythoncentral.io/intro-to-pysidepyqt-basic-w ...

  6. PySide——Python图形化界面入门教程(六)

    PySide——Python图形化界面入门教程(六) ——QListView和QStandardItemModel 翻译自:http://pythoncentral.io/pyside-pyqt-tu ...

  7. windows API 开发飞机订票系统 图形化界面 (一)

    去年数据结构课程设计的作品,c语言实现,图形化界面使用windows API实现. 首发在我csdn博客:http://blog.csdn.net/u013805360/article/details ...

  8. Windows远程连接CentOS图形化界面

    1.检查是否安装VNC rpm -q tigervnc tigervnc-server 2.安装安装X-Window # yum check-update # yum groupinstall &qu ...

  9. PySide——Python图形化界面入门教程(三)

    PySide——Python图形化界面入门教程(三) ——使用内建新号和槽 ——Using Built-In Signals and Slots 上一个教程中,我们学习了如何创建和建立交互widget ...

随机推荐

  1. CSS之设置滚动条样式

    因为在现在的大部分项目中很多都用到了滚动条,有时候用到模拟的滚动条,现在说下滚动条的CSS也能解决. 比如网易邮箱的滚动条样子很好看,就是利用的CSS来设置的,而且是webkit浏览器的.如图所示: ...

  2. 我的Java之旅 第八课 Servlet 进阶API、过滤器与监听器

    1.Servlet.ServletConfig与GenericServlet     首次请求的顺序      => 生成HttpServletRequest与HttpServletRespon ...

  3. Linux 学习笔记之超详细基础linux命令 Part 14

    Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 13---------------- ...

  4. ImageButton和ImageView设置点击透明区域不响应

    思路 ImageView和ImageButton都可以设置background和设置src,两者的区别自行度娘.由于两者的不同,获取它们的图片资源的方法也不同.倘若设置的是background,那么需 ...

  5. (网页)JS中的小技巧,但十分的实用!

    转自CSDN: 1.document.write(”"); 输出语句2.JS中的注释为//3.传统的HTML文档顺序是:document->html->(head,body)4. ...

  6. [Q&A] 解决 SBT 初始化或下载 jar 包速度慢的问题

    原文地址:https://www.cnblogs.com/memento/p/9153012.html 在 C:\Users\用户名\.sbt 目录下添加一个 "repositories&q ...

  7. 07-OpenLDAP密码审计

    OpenLDAP密码审计 阅读视图 密码审计的作用 操作实践 1. 密码审计的作用 开启密码审计的功能主要用于记录OpenLDAP用户修改密码,以及密码审计. 2. 操作实践 开启密码审计模块并配置密 ...

  8. EntityFramework Code-First 简易教程(十)-------多对多

    配置Many-to-Many(多对多)关系: 这里有两个类,Student和Course,一个Student可以有多个Course,一个Course也可以有多个Student,所以这就成了多对多关系. ...

  9. EntityFramework Code-First 简易教程(四)-------继承策略

    在前篇CodeFirst类型约定中,我们在数据库中为每一个模型类创建一个表,但是有个问题,我们可以设计出带继承关系的模型类,即面向对象编程既有“has a”(表示类继承)也有“is a”(表示类包含) ...

  10. Visual Stuido插件大全

    JS Enhancements 使用JS能像C#代码一样折叠成块 Code Compare Code Compare is a powerful file and folder comparison ...