美文网首页学习笔记
面向小白的C语言教程(005)-创建MFC界面程序

面向小白的C语言教程(005)-创建MFC界面程序

作者: 爱学习的老周 | 来源:发表于2019-04-29 22:38 被阅读3次

    创建MFC界面程序

    1、创建MFC程序:

    直接搜索MFC


    030.png

    如果搜索不到,那就是没安装,连上网络,找到你的Visual Studio Installer并打开,点击【修改】 —【使用C++的桌面开发】 — 【C++MFC for v142生成工具】,安装就可以了。


    031.png
    然后创建MFC程序,在【应用程序类型】里选择【基于对话框】,点击【完成】,这样就创建好了一个MFC程序,你可能还是看不到界面,进行以下操作:找到右边的文件目录,点开【资源文件】—找到以.rc结尾的文件,双击打开,打开Dialog,双击文件IDD_MFCAPPLICATION1_DIALOG:
    032.gif

    对其进行调试,会弹出一个空对话框, 只有确定和取消两个。

    我们现在要实现一个功能,点击一个按钮打开Windows系统的计算器。

    点击试图—工具箱—将button拖入到对话框中,点击button1按钮—找到右下角属性—外观—caption设置为【计算器】,我们调试一下,此时点击计算器是没有反应的:


    033.gif

    我们双击【计算器】按钮,会打开一个.cpp并定位到一行函数上,这个文件里的代码就是MFC对话框的实现代码,具体怎么实现的,现在不需要理解。定位到的那一行函数就是你点击那个按钮将会触发执行的函数,可以看到函数体是空的,所以刚才点击的时候没有反应。此时我们需要在函数体中添加一些代码:

    void CMFCApplicationDlg::OnBnClickedButton1()
    {
    #include<stdlib.h>
        system("calc");
        // TODO: 在此添加控件通知处理程序代码
    }
    

    再次调试:


    034.gif

    这意味着一个按钮可以触发任何DOS命令。

    例如我想打开QQ,关闭QQ:


    035.png
    void CMFCApplicationDlg::OnBnClickedButton2()
    {
        system("E:\\QQ\\Bin\\QQScLauncher.exe");//
        // TODO: 在此添加控件通知处理程序代码
    }
    
    
    void CMFCApplicationDlg::OnBnClickedButton3()
    {
        system("taskkill /f /im QQ.exe");
        // TODO: 在此添加控件通知处理程序代码
    }
    

    调试结果:


    036.gif

    还可以打开浏览器并指定网址(此例打开火狐指定百度地址):

    void CMFCApplicationDlg::OnBnClickedButton4()
    {
        system("E:\\Firefox\\firefox.exe https://www.baidu.com");
        // TODO: 在此添加控件通知处理程序代码
    }
    
    037.gif

    介绍一个符号:&,此符号可用于指令并行

    如果我们设置一个查看进程的按钮,即

    void CMFCApplicationDlg::OnBnClickedButton5()
    {
        system("tasklist");
        // TODO: 在此添加控件通知处理程序代码
    }
    

    会发现窗口一闪而过,这是指令执行完自动关闭了。你可能会觉得在后面接一行system(“pause”)就可以了,但你调试之后会发现,加了暂停指令,执行完查看进程的指令后窗口仍然会关掉,然后再打开一个新的窗口执行system(“pause”),此时程序暂停,等待手动关闭。

    038.gif
    我们要这样写才可以,
    void CMFCApplicationDlg::OnBnClickedButton5()
    {
        system("tasklist & pause");
        // TODO: 在此添加控件通知处理程序代码
    }
    

    这意味着&(and)两边的指令在一个窗口中并行。我们还可以用此方式将进程信息导入到文本文件中并打开文件,还可以查看这个程序本身的源代码,改变CMD窗口的标题和颜色等一切可以用DOS命令实现的功能都可以实现。

    这里不一一演示。

    讲一下什么是同步(阻塞)状态什么是异步状态

    我们写以下代码:

    #include<stdlib.h>
    void main(){
        system("notepad");
        system("notepad");
        system("notepad");
    }
    

    调试的时候你不会看到三个被同时打开的记事本,而是关掉一个,才会打开下一个,这件同步状态,也叫阻塞状态。我们改一下代码:

    #include<stdlib.h>
    void main(){
        system("start notepad");
        system("start notepad");
        system("start notepad");
    }
    

    再次调试就会看到三个同时打开的记事本,这叫异步状态,即不需要关闭前一个就可以直接打开下一个。

    关注微信公众号axxd_lz回复【C语言】获取视频教程和电子书。

    相关文章

      网友评论

        本文标题:面向小白的C语言教程(005)-创建MFC界面程序

        本文链接:https://www.haomeiwen.com/subject/twkpnqtx.html