none
VC++问题 高手能答下吗? RRS feed

  • 问题

  • 初学VC++一天 遇到几个白痴问题,   见笑了。

    1.书上说在消息循环中TranslateMessage 是用来进行消息转换的,那么转换前是什么样子,转了又是什么样子,它到底存在有什么意义?

    2.DispatchMessage 好像是用来投递消息的 为什么 VC++不自动处理? 自己写有什么好处?

    3.VC里面怎么那么多诡异的声明?  比如WinMain前的 WINAPI (去掉一样能运行)

     4. WinMain中的  LPSTR 换成 PSTR 为什么依然能运行

    5.CreateWindow中 LPWindowName (指向一个指定窗口名的空结束的字符串指针。 )  既然是指针  为啥一个文本 如(“XX”) 就能赋值?

    6.消息循环是死循环,为啥不出现程序卡死?

    7.#define 是用来定义常量的吗?

     8.VC++里的逻辑(与)是不是可以理解成更形象的(且)

     9.UpdateWindow  可有可无 是不是因为 消息循环中有个窗口重画?

    10. 本人小学文化,英语很糟糕,MSDN看起很恼火,不过我会努力地,  这里希望 高手能给点建议,  经验什么的。。  暂时就这些, 。!!!  GO GO GO

    2010年6月17日 6:17

答案

  • 1. 这个主要是转换按键消息用的,比如他会把Shift + 'a' -> 转换成WM_CHAR中的字母'A'

    2. 你要想自动处理,那么可以用MFC,他已经封装好了

    3. 那些声明都是有特殊作用的,具体MSDN上有详细说明 

    4. LPSTR和PSTR的定义都是 char*

    5. 一个文本就是一个常数指针

    6. Windows程序本来就是处理消息进行的,消息卡死了程序才会卡死

    7. 可以用来定义常量,但并不是专门拿来定义常量

    8. 不能,与是一种数学逻辑运算  

    9. 消息循环中没有固定的,但是当触发某些条件时就会有

     


    0xBAADF00D
    • 已标记为答案 Nancy Shao 2010年6月23日 6:16
    2010年6月20日 5:42
    版主

全部回复

  • 选择性的回复一些,比如问题3,这是历史遗留问题,微软的工程师想自己定义一套规则,当然部分原因是便于移植,可是依旧很多人不明白,不就是无符号整数么?不就是unsigned int么?为什么非得typedef一个UINT,很多人觉得方便可是很多人觉得实在没有任何必要。

      至于问题5,你学过C++吧?比如fun(char *p),那么可以调用fun("abc");么?道理一样

      #define的用法,我的建议和C++创始人一样,那就是除了使用#ifdef #define #else之类的外,never使用#define定义一些常量和“函数”宏,比如

      #define fun(x) x*x 何必呢?为什么不用inline呢?


    bylh
    2010年6月17日 11:43
  • Updates the client area by sending aWM_PAINT message if the update region is not empty. The UpdateWindow member function sends a WM_PAINT message directly, bypassing the application queue. If the update region is empty, WM_PAINT is not sent.

    2010年6月17日 13:21
  • 1. 这个主要是转换按键消息用的,比如他会把Shift + 'a' -> 转换成WM_CHAR中的字母'A'

    2. 你要想自动处理,那么可以用MFC,他已经封装好了

    3. 那些声明都是有特殊作用的,具体MSDN上有详细说明 

    4. LPSTR和PSTR的定义都是 char*

    5. 一个文本就是一个常数指针

    6. Windows程序本来就是处理消息进行的,消息卡死了程序才会卡死

    7. 可以用来定义常量,但并不是专门拿来定义常量

    8. 不能,与是一种数学逻辑运算  

    9. 消息循环中没有固定的,但是当触发某些条件时就会有

     


    0xBAADF00D
    • 已标记为答案 Nancy Shao 2010年6月23日 6:16
    2010年6月20日 5:42
    版主
  •  
     
    2010年6月20日 8:12
  • 这个新手水平不简单,

    一下子问出10个问题.

    我太佩服了.


    Meteor
    2010年6月22日 6:11