MFC:学习杂记之一

1、_T宏、UNICODE和ANSI

 

    windows的API大多有两套函数,比如TextOut,系统中实际的函数是TextOutA()和TextOutW()两个函数。若在编译时使用了_UNICODE宏,则用TextoutW()函数,否则为TextOutA()函数。  
  同样,字符串也有Unicode串和ANSI串之分。  
  在字符创之前使用宏_T("***"),若编译时使用了_UNICODE宏,则为UNICODE字符串,否则为ANSI字符串。_T即为_TEXT,可见tchar.h。

    _T   告诉编辑器:如果定义了_UNICODE,其中的字符串是按UNICODE编码;否则其中的字符串就按ANSI编码。
    _T的用法是:_T("字符串")。

 

2、typedef和define

 

2者的定义形式为:

#define NEW( OLD)
typedef OLD NEW;

typedef 表达式(NEW); //用NEW代表一个"表达式()"的类型
    为了尽可能地兼容,一般都遵循#define定义“可读”的常量以及一些宏语句的任务,而typedef则常用来定义关键字、冗长的类型的别名

 

注意以下2种形式意义不全相同:

typedef    (int*)      pINT;
#define    pINT2    int*
效果不同!实践中见差别:pINT a,b;的效果同int *a; int *b;表示定义了两个整型指针变量。而pINT2 a,b;的效果同int *a, b;

 

3、PeekMessage和GetMessage


两个函数主要有以下两个区别:
    1.GetMessage将等到有合适的消息时才返回,而PeekMessage只是撇一下消息队列
    2.GetMessage会将消息从队列中删除,而PeekMessage可以设置最后一个参数wRemoveMsg来决定是否将消息保留在队列中。

      在Windows的内部,GetMessage和PeekMessage执行着相同的代码。而两者最大的不同之处则体现在没有任何消息返回到应用程序的情况下。在此种情况下,PeekMessage会返回一个空值到应用程序,GetMessage会在此时让应用程序休眠

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值