上篇文章已经让我们有了对于MFC最简单直观的认识,但貌似并无太大的交互性可言,而且其实也没有涉及到数据的交互,所以本文通过做一个时间可以调节的定时关机的Demo来演示。

MFC入门(一)地址:http://blog.csdn.net/zmdsjtu/article/details/52311107

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

在之前完成的第一个MFC小程序的基础上来进行第二个的撰写。

打开Dialog之后,首先添加Edit Control控件用于输入数据,修改其属性里的Number为True,这样这个编辑框就只能输入整数啦~可以看到这个控件的ID为IDC_EDIT1,也就是代表了这个控件的地址,如果想访问它就必须得知道这个地址。

整体布局大概如下:   //无关痛痒

下面就是对于关机Button对应的代码,双击关机Button到对应的函数位置,复制以下代码:

void CFirst_MFCDlg::OnBnClickedButton3()

{

int iResult = ::MessageBox(NULL, TEXT("确认要关机?"), TEXT("关机"), MB_OKCANCEL | MB_ICONQUESTION);

if (1 == iResult)

{

CString str;

((CEdit *)GetDlgItem(IDC_EDIT1))->GetWindowText(str);//获得

CString Shut = _T("shutdown   -s   -t ");     //左部分红色固定的字符串

str = Shut + str;

const size_t strsize = (str.GetLength() + 1) * 2; // 宽字符的长度;

char * pstr = new char[strsize]; //分配空间;

size_t sz = 0;

wcstombs_s(&sz, pstr, strsize, str, _TRUNCATE);

int n = atoi((const char*)pstr); // 字符串已经由原来的CString 转换成了 const char*

system(pstr);

//system("shutdown -s -t 15");

}

}

这里用到一个关键的功能函数system("shutdown -s -t 15")其主要作用相当于CMD里直接输hutdown -s -t 15,也就是十五秒后关机。需要做的工作也就是把15替换成从IDC_EDIT1读取的数据即可。

关键的提取输入字符的代码:

((CEdit *)GetDlgItem(IDC_EDIT1))->GetWindowText(str);

函数表示从控件读取String,但注意的是system()里的变量类型是const char*,而这里是CString类型,故而有了中间一长段由CString转const char*的代码。

此外为了防止测试的时候手画所以在点击关机按钮时首先会有弹出窗提示是否关机,具体功能各位看管可根据自己的实际需求来进行调整。

为防止手抖特意加了取消关机的按钮,其功能函数如下:

void CFirst_MFCDlg::OnBnClickedButton4()

{

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

system("shutdown -a");

}

最后实现结果如下:

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

MFC入门(二)-- 提取输入框的字符串(定时关机的小程序)的更多相关文章

  1. 微信小程序开发入门教程(四)---自己动手做个小程序

    前面已将基础知识准备的差不多了,下面实际做一个小程序. 一.目标 用于上传照片和文字. 2个主要页面:我me,设置set 二.开始制作 1.打开微信开发者工具(我用的1.02.1907160 Wind ...

  2. 小迪安全 Web安全 基础入门 - 第三天 - 抓包&封包&协议&APP&小程序&PC应用&WEB应用

    一.抓包工具 1.Fiddler.Fiddler是一个用于HTTP调试的代理服务器应用程序,能捕获HTTP和HTTPS流量,并将其记录下来供用户查看.它通过使用自签名证书实现中间人攻击来进行日志记录. ...

  3. 【wepy入门教程】48小时开发看美女微信小程序,万花阁

    说明:本文只做小程序的开发过程记录:小程序仅供学习参考,严禁用于商业及非法用途 准备 不管是做网站还是做小程序,只要是To C,就少不了做内容,因此第一步依然是数据准备,从网上找到两个网站: http ...

  4. 零基础入门微信小程序开发

    注:本文来源于:<零基础入门微信小程序开发> 课程介绍 本达人课是一个系列入门教程,目标是从 0 开始带领读者上手实战,课程以微信小程序的核心概念作为主线,介绍配置文件.页面样式文件.Ja ...

  5. 原创:从零开始,微信小程序新手入门宝典《一》

    为了方便大家了解并入门微信小程序,我将一些可能会需要的知识,列在这里,让大家方便的从零开始学习:一:微信小程序的特点张小龙:张小龙全面阐述小程序,推荐通读此文: 小程序是一种不需要下载.安装即可使用的 ...

  6. 利用WordPress REST API 开发微信小程序从入门到放弃

    自从我发布并开源WordPress版微信小程序以来,很多WordPress网站的站长问有关程序开发的问题,其实在文章:<用微信小程序连接WordPress网站>讲述过一些基本的要点,不过仍 ...

  7. 微信小程序入门文档

    一 基本介绍 微信专门为小程序开发了一个ide叫做微信开发者工具 最新一版的微信开发者工具,把微信公众号的调试开发工作也集成了进去,可以更换开发模式. https://mp.weixin.qq.com ...

  8. 微信小程序开发入门与实践

    基础知识---- MINA 框架 为方便微信小程序开发,微信为小程序提供了 MINA 框架,这套框架集成了大量的原生组件以及 API.通过这套框架,我们可以方便快捷的完成相关的小程序开发工作. MIN ...

  9. 从零开始:微信小程序新手入门宝典《一》

    为了方便大家了解并入门微信小程序,我将一些可能会需要的知识,列在这里,让大家方便的从零开始学习: 一:微信小程序的特点 张小龙:张小龙全面阐述小程序,推荐通读此文: 小程序是一种不需要下载.安装即可使 ...

随机推荐

  1. python之装饰器(函数)

    1. 装饰器 遵循的原则: 开闭原则:   对功能的扩展开放 对代码的修改是封闭 # 通用装饰器写法 # 存在的意义: 在不破坏原有函数和原有函数调用的基础上,给函数添加新的功能. def wrapp ...

  2. js 中判断变量是数组还是对象,和判断对象是否为空

    判断是对象还是数组  var ids={ id:'1',num:'2' } if(Array.isArray(ids) == false) {console.log('不是数组,对象') } else ...

  3. Salesforce的翻译工作台

    翻译工作台 Salesforce提供了翻译工作台.在这里管理员可以对各种数据进行翻译设置,包括对象信息.字段信息.验证规则.错误信息等. 翻译工作台集中了翻译的内容,从而使得管理员或开发者不需要在其他 ...

  4. MySQL数据库导入错误:ERROR 1064 (42000) 和 ERROR at line xx: Unknown command '\Z'.

    使用mysqldump命令导出数据: D:\Program Files\MySQL\MySQL Server 5.6\bin>mysqldump -hlocalhost -uroot -proo ...

  5. iOS-WKWebView的使用

    参考文章:http://www.cocoachina.com/ios/20180831/24753.html WK时苹果在iOS8.0之后推出的控件,相比于UIWebView: 内存消耗少: 解决了网 ...

  6. Java String和Date的转换

    String—>Date方法一: String dateString = "2016-01-08"; try { SimpleDateFormat sdf = new Sim ...

  7. Mongodb的入门(8)mongodb事物分析

    老生常谈:<在前面博客中也介绍过> mongodb官网:https://docs.mongodb.com/manual/introduction/ mongodb:官网上是这样定义的Mon ...

  8. 【Tomcat】Unrecognized Windows Sockets error: 10106: Socket creation failed

    tomcat8启动过程中报如下错误 -Nov- ::]: java.net.SocketException: Unrecognized Windows Sockets error: : create ...

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

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

  10. 数据库的IO and 数据库优化问题

    一.IO介绍 IO有四种类型:连续读,随机读,随机写和连续写,连续读写的IO size通常比较大(128KB-1MB),主要衡量吞吐量,而随机读写的IO size比较小(小于8KB),主要衡量IOPS ...