MFC入门(一)-- 第一个简单的windows图形化界面小程序(打开计算器,记事本,查IP)
////////////////////////////////序////////////////////////////////
大约三年前,学过一些简单的编程语言之后其实一直挺苦恼于所写的程序总是拘泥于用的编译器,脱离了编译环境基本没运行的可行性,故而写一个在任意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)的更多相关文章
- scratch少儿编程第一季——01、初识图形化界面编程的神器
各位小伙伴大家好: 说到2018年互联教育的热门事件,那就不得不提Scratch. 相信各位不关注信息技术领域的各位家长也都听说过这个东西. 对于小学阶段想要接触编程或信息技术学生来说,Scratch ...
- PySide——Python图形化界面入门教程(五)
PySide——Python图形化界面入门教程(五) ——QListWidget 翻译自:http://pythoncentral.io/pyside-pyqt-tutorial-the-qlistw ...
- PySide——Python图形化界面入门教程(四)
PySide——Python图形化界面入门教程(四) ——创建自己的信号槽 ——Creating Your Own Signals and Slots 翻译自:http://pythoncentral ...
- PySide——Python图形化界面入门教程(二)
PySide——Python图形化界面入门教程(二) ——交互Widget和布局容器 ——Interactive Widgets and Layout Containers 翻译自:http://py ...
- PySide——Python图形化界面入门教程(一)
PySide——Python图形化界面入门教程(一) ——基本部件和HelloWorld 翻译自:http://pythoncentral.io/intro-to-pysidepyqt-basic-w ...
- PySide——Python图形化界面入门教程(六)
PySide——Python图形化界面入门教程(六) ——QListView和QStandardItemModel 翻译自:http://pythoncentral.io/pyside-pyqt-tu ...
- windows API 开发飞机订票系统 图形化界面 (一)
去年数据结构课程设计的作品,c语言实现,图形化界面使用windows API实现. 首发在我csdn博客:http://blog.csdn.net/u013805360/article/details ...
- Windows远程连接CentOS图形化界面
1.检查是否安装VNC rpm -q tigervnc tigervnc-server 2.安装安装X-Window # yum check-update # yum groupinstall &qu ...
- PySide——Python图形化界面入门教程(三)
PySide——Python图形化界面入门教程(三) ——使用内建新号和槽 ——Using Built-In Signals and Slots 上一个教程中,我们学习了如何创建和建立交互widget ...
随机推荐
- php获取数据库中数据
<?php header("Content-type:text/html;charset=utf-8");//字符编码设置 $servername = "local ...
- 使用volley上传多张图片,一个参数对应多张图片,转载
https://my.oschina.net/u/1177694/blog/491834 原帖地址 而如果使用volley的话,因为请求数据那些都很简便,但遇到上传文件就麻烦那可不好,同时使用多个网络 ...
- (网页)angular js 终极购物车(转)
转自CSDN: <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...
- Python中DataFrame关联
df = pd.merge( df, # 左 wzplbm, # 右 left_on = ['WZBM','ZBWZMC'], # 左DataFrame匹配列 right_on = ['WZPLBM' ...
- solr搜索引擎配置使用mongodb作为数据源
环境说明: 操作系统:由于是使用的docker直接拉取的镜像部署的,系统是LINUX环境 mongodb: 4.0.3 solr: 7.5.0 python: 3.5 配置mongodb 1.拉取mo ...
- python第二天 列表、元组
今天学习了列表.元组相关的知识:与C中的数组列表相似,元组为只读列表: 以及切片相关操作: #!usr/bin/env python #-*-coding:utf-8-*- # Author calm ...
- 高通移植mipi LCD的过程LK代码
lk部分:(实现LCD兼容) 1. 函数定位 aboot_init()来到target_display_init(): 这就是高通原生lk LCD 兼容的关键所在.至于你需要兼容多少LCD 就在whi ...
- Django知识补充
目录 一.文件上传 二.Models补充 三.Django总结 一.文件上传 1.通过form表单或者通过From类上传 views.py from django.shortcuts import r ...
- 12个HTML和CSS必须知道的重点难点问题
这12个问题,基本上就是HTML和CSS基础中的重点个难点了,也是必须要弄清楚的基本问题,其中定位的绝对定位和相对定位到底相对什么定位?这个还是容易被忽视的,浮动也是一个大坑,有很多细节.这12个知识 ...
- January 16th, 2018 Week 03rd Tuesday
Accept who you are, and revel in it. 接受真实的自己并乐在其中. Try to accept youself and try to love yourself mo ...