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

大约三年前,学过一些简单的编程语言之后其实一直挺苦恼于所写的程序总是拘泥于用的编译器,脱离了编译环境基本没运行的可行性,故而写一个在任意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. a标签禁止跳转或者不跳转的几种实现方式

    1.onclick事件中返回false <a href="http://www.baidu.com"  onclick="return false" &g ...

  2. git命令详解( 八)

    此为记录git的第八篇,前七篇为远程篇,工作中最常用的都在前七篇,因为要在远程分支上合作开发     在提交树上移动 撤销变更 在提交树上移动 在接触 Git 更高级功能之前,我们有必要先学习在你项目 ...

  3. Apex计划作业框架的实现

    Apex计划作业框架的实现 在本文中,我们实现一个简单的"计划作业框架",用于实现数据的定时自动处理. Apex相关接口 Apex中提供了一组接口用来实现数据的处理.我们主要使用以 ...

  4. SpringMVC的启动

    Spring MVC中的Servlet Spring MVC中Servlet一共有三个层次,分别是HttpServletBean.FrameworkServlet和DispatcherServlet. ...

  5. 关注的Elasticsearch大牛博客

    1.http://wangnan.tech/ 2.https://elasticsearch.cn/people/wood 3.https://www.jianshu.com/u/244399b1d7 ...

  6. 前端路由简介以及vue-router实现原理

    后端路由简介 路由这个概念最先是后端出现的.在以前用模板引擎开发页面时,经常会看到这样 http://www.xxx.com/login 大致流程可以看成这样: 浏览器发出请求 服务器监听到80端口( ...

  7. WebSocket实现简单的在线聊天

    SuperWebSocket在WebService中的应用 最开始使用是寄托在IIS中,发布之后测试时半个小时就会断开,所以改为WindowsService 1. 新建Windows服务项目[Test ...

  8. 洗礼灵魂,修炼python(42)--巩固篇—type内置函数与类的千丝万缕关系

    type函数的隐藏属性 相信大家都知道内置函数type是用来查看对象的数据类型的.例: 那比如我对int类查看类型呢? 有朋友会说,int是内置类啊,用自定义的应该不会这样,我们自定义一个类呢? 还是 ...

  9. gitlab hooks配置

    1.邮件格式过滤 pre-recieive rev_type=commit # Only check the first commit information due to a lot of comm ...

  10. php中编码转换方法

    php里经常用到编码转换,在这记录一个常用的编码转换方法,字符串.数组.对象都可以使用,使用了递归来解决,比较普通 /* * php中编码转换 * @param $param 需要转换的数据 * @p ...