马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
typedef struct _LVITEM {
UINT mask; //说明LVITEM结构中哪些成员有效
int iItem; //项目的索引值(可以视为行号)从0开始
int iSubItem; //子项的索引值(可以视为列号)从0开始
UINT state; //子项的状态
UINT stateMask; //状态有效的屏蔽位
LPTSTR pszText; //主项或子项的名称
int cchTextMax; //pszText所指向的缓冲区大小
int iImage; //关联图像列表中指定图像的索引值
LPARAM lParam; //程序定义的32位参数
int iIndent; //表示图像位置缩进的单位
} LVITEM, FAR *LPLVITEM;
我的问题:mask的值是如何计算的 ??
mask 是一个标志位字段,用于指示 LVITEM 结构中哪些成员是有效的。 mask 的值是通过将相关的预定义常量进行按位或(bitwise OR)操作而得到的。这些预定义常量通常在头文件中定义,并且它们的值是 2 的幂,这使得它们可以用一个整数表示。
以下是一些与 LVITEM 结构相关的常量:
- LVIF_TEXT:表示 pszText 成员有效。
- LVIF_IMAGE:表示 iImage 成员有效。
- LVIF_PARAM:表示 lParam 成员有效。
- LVIF_STATE:表示 state 和 stateMask 成员有效。
- LVIF_INDENT:表示 iIndent 成员有效。
- LVIF_NORECOMPUTE:防止控件自动重新计算某些值。
例如,如果你想设置 mask 使得 pszText 和 iImage 成员有效,你可以这样计算 mask 的值:
mask = LVIF_TEXT | LVIF_IMAGE;
这会将 LVIF_TEXT 和 LVIF_IMAGE 常量的值按位或(bitwise OR)在一起。当你在使用 LVITEM 结构时,系统会检查 mask 的值,并根据这个值决定使用哪些成员。
|