ControlNotifyEvent.NotifyCode 属性 | |
由 Windows API 定义的此事件的通知代码。
命名空间:
VO
程序集:
VOGUIClasses (在 VOGUIClasses.dll 中) 版本:2.22 GA
语法 VIRTUAL PROPERTY NotifyCode AS DWORD GET
public virtual uint NotifyCode { get; }
查看代码属性值
类型:
UInt32由 Windows API 定义的此事件的通知代码。
备注
由 Windows API 定义的此事件的通知代码。
通知代码的值取决于控件的类型和事件。
有关更多详细信息,请参阅 Microsoft Win32 软件开发工具包文档。
提示: |
---|
ControlNotifyEvent:NotifyCode 访问返回一个 DWORD 变量。
Windows SDK 中的 NotifyCode 值通常定义为:
1DEFINE TVN_KEYDOWN := (TVN_FIRST-12)
2DEFINE TVN_FIRST := (0U-400U)
在 X# 的早期版本中,TVN_KEYDOWN 编译为值为 -412 的 LONG。大多数其他开发环境将这些定义视为 DWORD(无符号),
因为 TVN_FIRST 的定义中包含一个或多个无符号常量。
不幸的是,X# 中存在一个小问题: USUAL 变量只能包含 LONG 或 FLOAT 数字,而不能包含 DWORD。
这意味着如果您晚绑定调用 ControlNotifyEvent:NotifyCode,您将收到一个 USUAL,因此是一个 LONG。
因此,如果 NotifyCode 是 TVN_KEYDOWN,则 USUAL 将具有 -412 的 LONG 值。
因此,我们强烈建议将事件对象存储在类型本地。这确保您将获得正确的数字类型:
1METHOD ControlNotify(oControlNotifyEvent) CLASS HelpAbout
2 LOCAL oControl AS Control
3 LOCAL oCNEvent AS ControlNotifyEvent
4
5 oCNEvent := oControlNotifyEvent
6 oControl := IIF(oCNEvent == NULL_OBJECT, NULL_OBJECT, oCNEvent:Control)
7
8 SUPER:ControlNotify(oControlEvent)
9
10 IF oCNEvent:NotifyCode == TVN_KEYDOWN
11
12 ENDIF
13
14 RETURN NIL |
参见