上篇文章已经让我们有了对于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. 【20190129】CSS-定位问题记录

    很多情况下我在写div的时候都不会把高度写死,而是用子元素撑开高度的方式,但是如果子元素设置了浮动或者position绝对定位,就相当于把子元素从文档流中拿出来了,这时父元素的高度就不能被子元素撑开了 ...

  2. 【代码笔记】Web-利用Dreamweaver实现form

    一,打开Dreamweaver---->File---New---->如下图所示.选择HTML,点击OK. 二,会出现如下图所示界面.把光标放到Body处. 三,将上面的栏切换到Desig ...

  3. JavaScript原型与原型链,原型的实际应用

    原型链是js面向对象的基础,非常重要. 一,创建对象的几种方法: 1,字面量 var o1 = { name:'o1' }; 2,构造函数 var M = function(name){ this.n ...

  4. Related concepts of testing

    根据是否知道源代码测试可以分为黑盒和白盒. 黑盒:功能测试. 白盒:知道源代码,要写测试代码. 根据测试的粒度. 方法测试: 单元测试: 集成测试: 系统测试: 根据测试的暴力程度. 压力测试:谷歌工 ...

  5. 安卓APP应用在各大应用市场上架方法整理

    想要把APP上架到应用市场都要先注册开发者账号才可以.这里的方法包括注册帐号和后期上架及一些需要注意的问题.注意:首次提交应用绝对不能随便删除,否则后面再提交会显示应用APP冲突,会要求走应用认领流程 ...

  6. Java:【面向对象:抽象类,接口】

    本文内容: 抽象类 接口 抽象类与接口的异同 首发日期:2018-03-24 抽象类: 虽然已经有了父类,但有时候父类也是无法直接描述某些共有属性的,比如哺乳类和人类都会叫,而一般来说哺乳类这个父类并 ...

  7. 1.Spring MVC详解

    目录 1.SpringMVC 详细介绍 2.SpringMVC 处理请求流程 3.配置前端控制器 4.配置处理器适配器 5.编写 Handler 6.配置处理器映射器 7.配置视图解析器 8.Disp ...

  8. maven(三):maven项目结构及其运行机制

    在上一篇中讲了如何创建maven项目,现在回到那个项目 项目结构 src/main/java:java代码目录 src/main/resources:资源目录,比如spring.xml文件,prope ...

  9. redhat5 安装mysql 5.6

    在官网找到下载链接 http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-5.6.19-1.rhel5.x86_64.rpm-bundle.tar wg ...

  10. 解决win10系统dpi放大后,部分网页文字颜色很浅的问题

    前段时间,换了个27寸的4k显示器.原始分辨率下文字太小,眼睛估计得看瞎 放大dpi后,这问题,那问题,好多 百度知道,淘宝,这网页文字颜色也非常的浅,看着眼睛很累人 看了半天是字体若的祸 暂时发现A ...