L_AnnSetAutoMenuState

# include“l_bitmap.h”

L_LTANN_APIL_INTL_AnnSetAutoMenuState(hObject, nObjectType, pEnable, pEnableFlags, uBits, uFlags)

一次设置所有菜单项。

参数

HANNOBJECThObject

注释对象的句柄。

L_INTnObjectType

常量,用于指定对象的类型。如果hObject是一个自动化对象,则所有类型为nObjectType的对象的菜单项将基于pEnableFlags而且pEnable.有关可能的对象类型的描述,请参见注释的类型

L_UCHAR* pEnable

中指定的相应菜单项是否启用或禁用的位标志数组pEnableFlags.pEnable数组中的位的顺序与pEnableFlags数组中的位的顺序相同。因此,如果您希望显示ANNAUTOTEXT_MENU_CUT菜单项,则必须确保pEnableFlags[0] & 0x40 == 1为真,并且pEnable[0] & 0x40 == 1也是真。

L_UCHAR* pEnableFlags

指定要更改的菜单项的位标志数组。比特从最高有效到最低有效。因此,pEnableFlags[0]包含菜单项0、1、2、3、4、5、6、7的标志。这对应于:

例如,如果您希望更改ANNAUTOTEXT_MENU_CUT的设置,请确保pEnableFlags[0] & 0x40 == 1为真。

L_UINTuBits

的位数pEnableFlags而且pEnable数组。pEnable和pEnableFlags所指向的字节数可以通过以下公式确定:bytes = (uBits + 7) / 8。

L_UINTuFlags

确定要处理哪些对象的标志。大多数标志只应用于容器对象。您可以在适当的时候使用按位OR(|)组合值。以下是有效值:

价值 意义
0 只处理指定的对象。
ANNFLAG_SELECTED [0x0001]只处理被选属性设置为TRUE的对象。要获取和设置所选属性,请使用L_AnnGetSelected而且L_AnnSetSelected功能。
ANNFLAG_NOTTHIS [0x0004]只处理指定容器中的一个级别的对象,而不是容器本身如果容器中有容器,它们将被修改,但其中的对象不会被修改。
ANNFLAG_RECURSE [0x0008]处理容器内的对象,以及任何子容器内的对象,直至任何级别。
ANNFLAG_NOTCONTAINER [0x0002](与ANNFLAG_RECURSE一起使用)处理容器内的对象,而不是容器本身。
ANNFLAG_NOINVALIDATE [0x0010]不要使窗口中受影响的矩形无效。使用此选项可避免生成不必要的绘制消息。

返回

价值 意义
成功 活动很成功。
< 1 发生错误。指返回代码

评论

如果有点在pEnableFlags数组设置为1时,则数组中对应的位pEnable数组决定是否显示相应的菜单项。如果pEnable中对应的位为1,则显示菜单项,前提是菜单项字符串不为NULL。如果pEnable中对应的位为0,则不显示对应的菜单项。

如果pEnableFlags中的某个位为0,则忽略pEnable中相应的位,根据默认行为显示或不显示菜单项。

必需的dll和库

平台

x64 Win32。

另请参阅

功能

主题

例子

L_INT AnnSetAutoMenuStateExample(HANNOBJECT hAutoObject)L_INT nRet;L_UCHAR pEnableFlags [2];L_UCHAR pEnable [2];L_UCHAR resultFlag;L_UINT uBits = 16;L_UCHAR结果;L_TCHAR cs [256];/*获取Note对象的菜单状态*/nRet = L_AnnGetAutoMenuState(hAutoObject, ANNOBJECT_NOTE, pEnable, pEnableFlags, uBits);如果(nRet != SUCCESS)返回nRet;/* 0x40表示Cut菜单项。因此,测试一下是否在pEnableFlags中设置了0x40标志,表明其默认行为发生了变化。* /resultFlag = pEnableFlags[0] & 0x40;如果(resultFlag == 0x40)/* Cut菜单项的标志已经设置*/对话框(NULL,文本(pEnableFlags已设置),文本(""), MB_OK);/*查看pEnable */中是否设置了相同的标志result = pEnable[0] & 0x40;如果(result == 0x40)/*已设置启用标志,菜单项已启用。* /对话框(NULL,文本(菜单项已启用。它将被禁用。”),文本(""), MB_OK);pEnable[0] = 0x00;nRet = L_AnnSetAutoMenuState(hAutoObject, ANNOBJECT_NOTE, pEnable, pEnableFlags, uBits, 0);如果(nRet != SUCCESS)返回nRet;其他的/*没有设置启用标志,菜单项被禁用。* /对话框(NULL,文本("菜单项已禁用。它将被启用。”),文本(""), MB_OK);pEnable[0] = 0x40;nRet = L_AnnSetAutoMenuState(hAutoObject, ANNOBJECT_NOTE, pEnable, pEnableFlags, uBits, 0);如果(nRet != SUCCESS)返回nRet;其他的/* Cut菜单项的标志未设置。设置它并禁用Cut菜单项。* /pEnableFlags[0] = 0x40;pEnable[0] = 0;wsprintf (cs, TEXT(" pEnableFlags[0]的值是%X.\n"), pEnableFlags [0]);消息框(NULL, cs, TEXT(""), MB_OK);nRet = L_AnnSetAutoMenuState(hAutoObject, ANNOBJECT_NOTE, pEnable, pEnableFlags, uBits, 0);如果(nRet != SUCCESS)返回nRet;返回成功;
栅格成像C API帮助
188金宝搏的网址客服|支持|联系我们|知识产权公告
©1991 - 2021领德科技有限公司版权所有。