刚接触API,发现很多API函数的参数都是常量,最近用到sendmessage,所以想了解下这些常量的定义和从哪里能查得到
就sendmessage这个函数问两个问题,恳求帮我解答下.谢谢1.sendmessage这个函数的MSG参数对应的消息的常量哪里能够查得到?2.最近看个源码中有Public Const WM_USER = &H400,我百度了下之后知道设置是私有消息的起点,
然后有Public Const TB_SETSTYLE = WM_USER + 56 
我想知道TB_SETSTYLE 这个是什么规则命名的?如果改成BB_ETSTYLE可不可以?而且既然是私有的消息,VB怎么知道这个消息是代表的是什么呢??

解决方案 »

  1.   

    VB6带API阅览器,在常量里查WM_开头的。
      

  2.   

    VC的那些.h头文件里有,翻译过来吧,如winbase.h里的
      

  3.   

    到网上去下载一个:API Viewer 2004 
    这个API浏览器很全面。
    所有的常量都在里面了。其实,这些常量都是从C++的头文件翻译过来的。
      

  4.   

    这个是一个比较好的软件,适合于学习API编程和参阅API资料:
    http://download.csdn.net/source/1441577
      

  5.   

    建议去MSDN去看吧、那里应该是最全的吧?(还有比Microsoft自己写的更详细的地方?!)
    基本所有的东西都有C++的例子、部分东西有VS里所有语言的例子
      

  6.   

    应该这么问.比如我想发送一个点击窗体按钮的消息,而我不知道那个代表点击按钮的MSG常量是什么的时候,我应该怎么办?0.0
      

  7.   

    Windows消息有好几百个,但常用的消息你要记住:
    Windows消息大全
    http://dev.csdn.net/htmls/81/81332.html
      

  8.   

    很感谢CHENJLL031,我就是想找这个,能不能帮我解释下我的第二个问题呢?
    或者我表达得不清楚,我举个例子,
    Option ExplicitPrivate Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As LongPrivate Const WM_USER As Long = &H400Private Const EM_SETTARGETDEVICE = (WM_USER + 72)    '允许使用RichTextBox的横向滚动条
        Call SendMessage(RichTextBox1.hwnd, EM_SETTARGETDEVICE, 0, 1)在这个例子里面.EM_SETTARGETDEVICE这个消息是私有的,那EM_SETTARGETDEVICE能不能改成WM_SETTARGETDEVICE或者ET_SETTARGETDEVICE?(WM_USER + 72)可不可以改成+60或者+100?
    这里面有什么要求没有?而且既然是私有的.那Call SendMessage(RichTextBox1.hwnd, EM_SETTARGETDEVICE, 0, 1)为什么程序知道这个消息是使用横向滚动条呢?
      

  9.   

    你应该先明确一个概念,发送消息之后,处理消息的不是你正在编写的程序,是接受消息的控件
    所以不是程序知道这个消息的意思是什么,而是接受消息的控件接受消息并处理消息实际上只是一个数值,所以与取名无关,EM_SETTARGETDEVICE 当然可以改成 WM_SETTARGETDEVICE 或者 ET_SETTARGETDEVICE 甚至改成 WM_MICROSOFT_IS_A_BITCH接受消息的控件规定了WM_USER+72的意思代表横向滚动条,RichTextBox接受到这个数字,就认为是横向滚动条这个消息,接受到+60或者+100就代表不同的意思