zoukankan      html  css  js  c++  java
  • VC++小结

    1、非0值表示真(TRUE),0值为假(FALSE);

    2、STL与MFC

      c++是语言,语言本身功能是很有限的,需要一些类库把常用的操作封装起来,以后可以直接调用,节省大量精力.STL和MFC都是一个扩充C++语言功能的类库.

      stl是底层类库,提供的是一般编程都会用到的功能,主要是一套容器,和一套相关的算法.常用的数据结构,比如list, queue, stack, map等等,都在stl里面给你实现好了,直接用就是了. 

      MFC是高层库(相对于stl而言),它封装的是WIN32API函数,把上千个复杂的API函数封装起来,并通过自己独特的消息处理机制来方便原生windows程序的开发.MFC比stl的应用范围窄,只有在开发原生windows程序时才会用到.

    3、对话框捕获按键消息

    (1)可以在对话框类中重载虚函数PreTranslateMessage(个人认为较好,当然应用程序类中重载也可以);

    (2)在应用程序类中重载虚函数ProcessMessageFilter(实现较麻烦见孙鑫第8章最后,还需在对话框类中添加代码,好处待考证);

    4、如果希望把某个数值限定在某个范围,最好的办法是取模运算,例如index = ++index%3;

    5、自定义消息

    (1)使用WM_USER防止自定义消息ID与系统消息ID冲突,小于它的系统保留,大于它的可被用户使用,如#define UM_PROGRESS WM_USER+1(不能超过0x7FFFF);

    (2)消息响应函数原型afx_msg LRESULT OnProgress(WPARAM wParam,LPARAM lParam),声明不能用void,而且不管需不需要,都要带上参数;

    (3)使用ON_MESSAGE宏,例如ON_MESSSAGE(UM_PORGRESS,CMainFrame::OnProgress),CMainFrame是所在类的类名,这里是框架类;

    (4)cpp文件中定义函数时,可以随便一个返回值,如return TRUE;

    (5)SendMessage(MSG)用于发送消息,等待MSG消息执行完毕才会返回,执行自身所属消息;

    (6)PostMessage(MSG)则是用于将消息到消息队列,然后立即返回,不必等待执行完毕,本身所在消息执行完才会执行MDG消息;

    6、resource.h与.rc文件---自己定义的菜单、对话框等资源都在.rc文件中,而资源的ID的声明在resource.h中,可以认为是.rc的头文件之一;

    7、窄字符与宽字符---对于字面值如"aa",可以使用L或_T来转换,变量则使用头文件atlconv.h下的A2W或W2A,需在使用代码前写一个USES_CONVERSION宏(不要将该宏写在循环的函数内部);

    8、文件的写入和读取方式要保持一致,对文件的读写最好统一使用二进制方式,以文本方式写入数据时,遇到“换行”符(ASCII码为10),会转换为“回车 换行”(ASCII码为13和10),读取文件则与写入是相反转换,二进制方式写入文件原样输出,写入10后记事本打开就会变成小黑点,以文本方式读取就显示为换行符;

    9、ASCII码显示转换---文本方式打开文件时,文件中的每一个字节都会转换成对应的ASCII字符显示,在VS中以二进制打开文件后是以十六进制来显示每个字节的,如图,左边的61 33 34 31即是右边a341的十六进制显示,每个数代表一个字节:

    10、文件对话框类---文件过滤器格式如:"Text Files(*.txt)\0*.txt"为一项,每一项之间用\0隔开,最后一个过滤器末尾加两个\0;

  • 相关阅读:
    Delphi公用函数单元
    Delphi XE5 for Android (十一)
    Delphi XE5 for Android (十)
    Delphi XE5 for Android (九)
    Delphi XE5 for Android (八)
    Delphi XE5 for Android (七)
    Delphi XE5 for Android (五)
    Delphi XE5 for Android (四)
    Delphi XE5 for Android (三)
    Delphi XE5 for Android (二)
  • 原文地址:https://www.cnblogs.com/qfcndtt/p/2466332.html
Copyright © 2011-2022 走看看