刚接触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怎么知道这个消息是代表的是什么呢??
就sendmessage这个函数问两个问题,恳求帮我解答下.谢谢1.sendmessage这个函数的MSG参数对应的消息的常量哪里能够查得到?2.最近看个源码中有Public Const WM_USER = &H400,我百度了下之后知道设置是私有消息的起点,
然后有Public Const TB_SETSTYLE = WM_USER + 56
我想知道TB_SETSTYLE 这个是什么规则命名的?如果改成BB_ETSTYLE可不可以?而且既然是私有的消息,VB怎么知道这个消息是代表的是什么呢??
这个API浏览器很全面。
所有的常量都在里面了。其实,这些常量都是从C++的头文件翻译过来的。
http://download.csdn.net/source/1441577
基本所有的东西都有C++的例子、部分东西有VS里所有语言的例子
Windows消息大全
http://dev.csdn.net/htmls/81/81332.html
或者我表达得不清楚,我举个例子,
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)为什么程序知道这个消息是使用横向滚动条呢?
所以不是程序知道这个消息的意思是什么,而是接受消息的控件接受消息并处理消息实际上只是一个数值,所以与取名无关,EM_SETTARGETDEVICE 当然可以改成 WM_SETTARGETDEVICE 或者 ET_SETTARGETDEVICE 甚至改成 WM_MICROSOFT_IS_A_BITCH接受消息的控件规定了WM_USER+72的意思代表横向滚动条,RichTextBox接受到这个数字,就认为是横向滚动条这个消息,接受到+60或者+100就代表不同的意思