APIVIEWER可以用来帮助生成API的声明,直接拷贝到程序里,挺方便的。我用的是APIVIEWER 2004 VERSION 3.10使用中有两个问题(1)为什么有的类型声明找不到啊?比如我要找NMTREEVIEW就没有,却能找到NMLISTVIEW(2)有的常数有两个,一个以A结尾,一个以W结尾,这有什么区别?分别该在什么情况下用?比如TVN_SELCHANGED就有两个
Public Const TVN_SELCHANGEDA As Long = (TVN_FIRST-2)
Public Const TVN_SELCHANGEDW As Long = (TVN_FIRST-51)
Public Const TVN_SELCHANGEDA As Long = (TVN_FIRST-2)
Public Const TVN_SELCHANGEDW As Long = (TVN_FIRST-51)
解决方案 »
- vb中treeview控件里怎样实现右键删除子菜单,添加子菜单,重命名,换图标等功能
- vb的ftp这样写可不可以实现
- [BlueDog] 我写了一个二进制文件读写提速类,不知道有没有用呀。
- 求助:spread
- 有关vb6.0+oracle9i取时间
- 中文版下面编写的软件到日文系统都变成乱码!关于strconv
- 用adodc控件的edit方法没有,怎么办?
- 为什么我在vb中保存数据时总是覆盖了数据库中的第一条记录???
- 关于注册表的问题!
- 这到底是怎么了????!~~!!!!!!
- 请问VB COM组件 javascript三者之间的关系是什么啊?
- 将中文系统语言设为韩文后,commondialog不能正确返回filename的问题,谢谢!
看星星很方便 - - http://topic.csdn.net/u/20081223/18/9E5CEC7B-5025-460A-BA30-2BC85704BEB8.html
第二个问题:实际上,有很多Windows API常数就是一字之差,其用途不一样,含义不一样,没什么奇怪的。只不过用于不同的API罢了。比如:SendMessage ,实际上在user32.dll中真正的函数名是SendMessageA,那么相应的API常数就不能用后缀带有W的,而后缀带有W的API函数及API常数一般来说用于服务器版操作系统,只是一个比喻,不太恰当,想表达这个意思!欢迎批评指正!
例如:SetWindowTextA,是ANSI函数:WINUSERAPI BOOL WINAPI SetWindowTextA(HWND hWnd, LPCSTR lpString);
在声明时必须用Alias子句:
Private Declare Function SetWindowText Lib "user32.dll" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long而SetWindowTextW,是Unicode函数:WINUSERAPI BOOL WINAPI SetWindowTextW(HWND hWnd, LPCWSTR lpString);
必须这样声明:
Private Declare Function SetWindowText Lib "user32.dll" Alias "SetWindowTextW" (ByVal hwnd As Long, ByVal lpString As Long) As Long