DISP_FUNCTION

本文详细介绍了OLE自动化函数DISP_FUNCTION的使用方法,包括参数解析和返回类型及参数列表的指定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DISP_FUNCTION

 

DISP_FUNCTION( theClass, pszName, pfnMember, vtRetVal, vtsParams )

 

#include <afxdisp.h>

 

参数:

theClass 类的名字。

pszName 函数的外部名字。

pfnMember 成员函数的名字。

vtRetVal 指定了函数返回类型的值。

vtsParams 指定了函数参数表的一个或多个常量的用空格分隔的列表。

 

说明:

DISP_FUNCTION宏被在调度映射中使用,用来定义一个OLE自动化函数。

vtRetVal参数属于VARTYPE类型。这个参数的可能取值来自VARENUM枚举,如下:

符号 返回类型

VT_EMPTY void

VT_I2 short

VT_I4 long

VT_R4 float

VT_R8 double

VT_CY CY

VT_DATE DATE

VT_BSTR BSTR

VT_DISPATCH LPDISPATCH

VT_ERROR SCODE

VT_BOOL BOOL

VT_VARIANT VARIANT

VT_UNKNOWN LPUNKNOWN

 

vtsParams参数是VTS_ 常量中取值的用空格分隔的列表。有空格分隔的一个或多个取值的列表指定了函数的参数列表。例如:

VTS_I2 VTS_PI2

指定了包含一个短整数以及后面的短整数指针的列表。

VTS_ 常量及其含义如下:

符号 参数类型

VTS_I2 short

VTS_I4 long

VTS_R4 float

VTS_R8 double

VTS_CY Const CY or CY*

VTS_DATE DATE

VTS_BSTR LPCSTR

VTS_DISPATCH LPDISPATCH

VTS_SCODE SCODE

VTS_BOOL BOOL

VTS_VARIANT Const VARIANT* or VARIANT&

VTS_UNKNOWN LPUNKNOWN

VTS_PI2 short*

VTS_PI4 long*

VTS_PR4 float*

VTS_PR8 double*

VTS_PCY CY*

VTS_PDATE DATE*

VTS_PBSTR BSTR*

VTS_PDISPATCH LPDISPATCH*

VTS_PSCODE SCODE*

VTS_PBOOL BOOL*

VTS_PVARIANT VARIANT*

VTS_PUNKNOWN LPUNKNOWN*

DISP_FUNCTION

 

DISP_FUNCTION( theClass, pszName, pfnMember, vtRetVal, vtsParams )

 

#include <afxdisp.h>

 

参数:

theClass 类的名字。

pszName 函数的外部名字。

pfnMember 成员函数的名字。

vtRetVal 指定了函数返回类型的值。

vtsParams 指定了函数参数表的一个或多个常量的用空格分隔的列表。

 

说明:

DISP_FUNCTION宏被在调度映射中使用,用来定义一个OLE自动化函数。

vtRetVal参数属于VARTYPE类型。这个参数的可能取值来自VARENUM枚举,如下:

符号 返回类型

VT_EMPTY void

VT_I2 short

VT_I4 long

VT_R4 float

VT_R8 double

VT_CY CY

VT_DATE DATE

VT_BSTR BSTR

VT_DISPATCH LPDISPATCH

VT_ERROR SCODE

VT_BOOL BOOL

VT_VARIANT VARIANT

VT_UNKNOWN LPUNKNOWN

 

vtsParams参数是VTS_ 常量中取值的用空格分隔的列表。有空格分隔的一个或多个取值的列表指定了函数的参数列表。例如:

VTS_I2 VTS_PI2

指定了包含一个短整数以及后面的短整数指针的列表。

VTS_ 常量及其含义如下:

符号 参数类型

VTS_I2 short

VTS_I4 long

VTS_R4 float

VTS_R8 double

VTS_CY Const CY or CY*

VTS_DATE DATE

VTS_BSTR LPCSTR

VTS_DISPATCH LPDISPATCH

VTS_SCODE SCODE

VTS_BOOL BOOL

VTS_VARIANT Const VARIANT* or VARIANT&

VTS_UNKNOWN LPUNKNOWN

VTS_PI2 short*

VTS_PI4 long*

VTS_PR4 float*

VTS_PR8 double*

VTS_PCY CY*

VTS_PDATE DATE*

VTS_PBSTR BSTR*

VTS_PDISPATCH LPDISPATCH*

VTS_PSCODE SCODE*

VTS_PBOOL BOOL*

VTS_PVARIANT VARIANT*

VTS_PUNKNOWN LPUNKNOWN*

### 使用 `disp_message` 显示变量 为了展示如何使用 `disp_message` 函数来显示变量的内容,下面提供了一个具体的例子。假设有一个名为 `Value` 的变量,该变量通过用户输入获取其值。 #### 示例代码 ```matlab % 获取用户输入并存储到 Value 变量中 Value = input('请输入消息:', 's'); % 定义窗口句柄和其他参数用于 disp_message 调用 WindowHandle = 1; % 假设当前活动窗口的句柄为1 String = ['您输入的消息是: ', Value]; % 将要显示的文字与变量组合成字符串 CoordSystem = 'window'; % 设置坐标系为窗口内相对位置 Row = 20; Column = 20; % 文字起始点的位置 Color = 'red'; % 颜色设置为红色 Box = 'true'; % 是否绘制边框 % 使用 disp_message 输出信息至指定窗口 disp_message(WindowHandle, String, CoordSystem, Row, Column, Color, Box); ``` 这段程序首先提示用户输入一条消息,并将其保存在 `Value` 中[^1]。接着定义了一系列参数以便调用 `disp_message` 来显示这条消息以及它的内容。这里特别注意的是,在构建传递给 `disp_message` 的第二个参数即 `String` 参数时,采用了 MATLAB 字符串连接的方式将固定文本和动态变化的 `Value` 结合起来形成完整的输出语句[^2]。 #### 关于 `disp_message` 的说明 函数原型如下所示: ```matlab function disp_message(WindowHandle, String, CoordSystem, Row, Column, Color, Box) ``` - **WindowHandle**: 指定要在哪个图形窗口上打印文字;可以是一个有效的 HALCON 图形窗口句柄。 - **String**: 表达想要呈现的具体字符序列,支持多行文本或带有特殊符号的信息表达方式。 - **CoordSystem**: 描述了定位坐标的参照体系,默认情况下可以选择 "image" 或者 "window"[^2]。 - **Row 和 Column**: 设定了从左上方开始计算的目标区域内的具体行列数值,用来精确定位所要放置的文字起点。 - **Color**: 控制字体颜色的选择项,接受标准的颜色名称作为输入。 - **Box**: 决定是否围绕着文本创建矩形边界框,可选值有 `'true'` 或 `'false'`。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值