• windows 程序设计的一些总结


    // 20170809 ,毕业的生活wagnxm老师给了我三门课程的代码和课件,一直超级喜欢老师的编程风格。曾经翻看过几回,每一次都因为看不懂windows的消息模式和MFC的工作机制而放弃了,以为每一个函数都是要背下来的,MFC的代码中间过程的代码也是自己填充的。这次没有放弃,而是结合着几本不同的教材硬看了几天,终于把windows 32 位编程和MFC编程的基本原理搞明白,并且能完成一些简单的功能,总算是入门了。原理性质的内容就不在这里讲了,就是消息驱动机制。

    一、一些踩过的坑。

    1 - 工程设置  : 运行windows 游戏编程的代码时记得添加附加依赖项 winmm.lib

    2 - playsound : 用rc的方法,定义int ,用MAKEINTRESOURCE调用,或者不用rc,直接 TEXT("filename.wav")

    二、windows 编程模型

    windows编程就是掌握消息驱动机制的过程。而且在《windows程序设计》和《MFC程序设计》这两本书的开头部分都着重讲了这个过程,当然MFC的编程在掌握基本的套路后,就是多多参看MSDN,VC6.0的程序在VS2017也能跑,虽说MFC没落了,但是这种兼容性还是保证了这部分学习对于编程环境的弱依赖性,在此.sln皆为2017, .dsw为VC6程序,而且尽量避免VC6的使用。

    MFC的入门可以从CFile、CString、Button、EDTI 这4个入手,一共是两个类和两个控件。项目创建时选择 Dialog base,搭配C++基本的用法就能完成这些项目。当然,还可以插入控制台用于调试。要习惯查询MSDN这种开发方式。

    以下是windows 开发的GitHub地址,原来的仓库被我用来实践git 命令搞得乱七八糟的,删了重新创建一个。

    https://github.com/hanxinle/mfc-base

    project 说明:

    1.add - 演示EDIT Control 和 Button 的使用,在DoDataExchange,文本框绑定接收数据的变量,在OnButton中,j将 CString --> float,Unicode下用_tstof,非Unicode下用 atof,f_result调用Format输出结果,Format中对CString用 _T 这个宏。
          

    2.CFile

    学习使用CFile,参考MSDN的解释进行编写,开发windows程序离不开MSDN,非常可惜的是,VS2013以后,我就没有在本地见过配置好的MSDN,推荐网页版,离线情况下用VC6.0版本的吧。

    3.consoleInMfc

    在MFC程序中使用控制台,VS2017不支持,这是从《十年VC++老鸟》上找的程序。其实用BUTTON,EDIT Control,CString用于调试也是可行的。占用一块儿页面的位置。

    4. RegEdit

    查看,修改注册表的程序。把前面的知识综合运用。

     

    5、MFC 编程中涉及的一些数据类型及解释

    BOOL // TRUE | FALSE
    BSTR // 32 BIT CHAR POINTER
    BYTE // 8 BIT ,likes unsigned char in c
    COLORREF // 32BIT DESCRIBE COLOR,USED IN GDI
    DWORD // 32BIT UNSINGNED INT
    LONG // 32BIT INT (+ -)
    LPARAM // 32BIT ,OFFTEN USED FOR FUNCTION'S Parameters
    LPCSTR // POITER TO 32BIT CONST STR
    LPSTR // POITER TO 32BIT STR
    LPCTSTR // POITER TO 32BIT CONST STR,Used for Unicode and DBCS
    LPTSTR // POITER TO 32BIT STR,USED for Unicode and DBCS
    LPVOID // POITER TO ANY TYPE
    LRESULT // window process or 32bit value callback function returns
    UINT // 32BIT UNSIGNED INT
    WNDPROC // 32BIT POITER TO WINDOWS FUNCTION
    WORD // 16BIT UNSIGNED INT
    WPARAM // 32BIT VALUE IN WIN32,OFTEN AS FUNCTION'S PARAMETERS


    /*ONLY IN MFC*/

    POSITION // POSITION OF ELEMENT IN SET
    LPCRECT // 32BIT POITER TO A CONST RECT STRUCT

  • 相关阅读:
    ADO.NET之使用DataSet类更新数据库
    ADO.NET之填充DataSet类
    ADO.NET之DataSet类
    ADO.NET之存储过程的调用(更删改查数据库)
    [Python]小甲鱼Python视频第011课(列表:一个打了激素的数组2)课后题及参考解答
    [Python]小甲鱼Python视频第010课(列表:一个打了激素的数组)课后题及参考解答
    [Python]小甲鱼Python视频第009课(了不起的分支和循环3)课后题及参考解答
    [Python]小甲鱼Python视频第007-008课(了不起的分支和循环)课后题及参考解答
    [Python]小甲鱼Python视频第006课(Pyhon之常用操作符)课后题及参考解答
    [Python]小甲鱼Python视频第005课(Python的数据类型)课后题及参考解答
  • 原文地址:https://www.cnblogs.com/hanxinle/p/6679165.html
Copyright © 2020-2023  润新知