作者cole945 (躂躂..)
看板Visual_Basic
标题Re: [API] 整人的mouse_event
时间Wed Jul 23 01:24:59 2008
※ 引述《saininniang (莎里奈)》之铭言:
: 不是大多数都 FUNCTION (XX,XX,XX)吗
: 怎麽会有 FUNCTION XX,XX,XX 的写法?
在 VB.NET 之前言的 BASIC 语言,
应该是 Sub 不加 ( ), function 才要加 ( )
虽然说, 呼叫 "只有一个参数" 的 Sub 也可以加 ( ),
但意义完成不同..
例如
print a
与 print (a)
後者其实会去重新演算(evaluate) 括号中的 expression,
产生一个暂时变数後才再过去, 在想传 BeRef 修改 a 值是,
会得到错误的结果..
因为你的 mouse_event 是 sub, 所以不加 ()
(x,x,x,x) 本生没办法演算, 所以编译时就会产生语法错误..
: 2.
: 是用1,2,4,8,16,32,64....
: 为什麽阿?
: 连mdsn上也没写可以这样用
: 为什麽API这麽难用?
恐怕应该说, 其实是 VB 难用, 不是 API 难用 :X
因为这个 API 打从一开始就是给 C/C++ 用的,
你有注意到文末的
Header Declared in Winuser.h, include Windows.h
吗?
对一个 C/C++ 的user, 他想要呼叫 mouse_event ,
只需要
#include <Windows.h>
就可以呼叫 mouse_event 了, 不需要 ``declare'' 你在 1. 讲的东西..
而且也可以直接套用 MOUSEEVENTF_ABSOLUTE 等等参数..
因为这些东西都已经写在 windows.h(或说winuser.h) 里了,
而为什麽可以用 1,2,4,8,16,32 传?
那是因为 MOUSEEVENTF_ABSOLUTE 这些东西说穿了就只是些整数值啊..
写成这个样子,在撰写、维护、移植 才会比较方便..
光看一个 16 谁知道是什麽意思..
要的话, 你也可以把这些 flags 自己重订成常数再用, 也是一样的意思..
: 而且还搞怪,连API使用方法都不一致
这应该是你对 API 不熟所造成的错觉吧 @@"
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 211.74.113.211
1F:推 saininniang:感谢,我解了解 07/23 02:19
2F:推 yauhh:说明得真好 07/24 02:11