在Win32中,LB_GETTEXT函数用于从列表控件(如CListCtrl)中获取指定的文本。如果成功,则该函数返回被删除或替换的文本的指针。如果失败,则该函数返回NULL。
下面是一个示例代码,用于获取列表控件中的文本并打印输出:
// 假设列表控件名为list
char *text = list->GetItemText(list->GetFirstSelectedItemPosition());
if (text)
{
printf("Selected text: %s\n", text);
free(text);
}
else
{
printf("No text selected.\n");
}
如果获取到的文本是一个字符串,可以直接打印输出。如果获取到的文本是一个指针,需要使用free()函数释放该指针占用的内存。
需要注意的是,LB_GETTEXT函数是异步的,需要等待列表控件刷新才能获取最新的文本。因此,如果需要获取最新的文本,应该使用PostMessage()函数向列表控件发送一条消息,以触发其刷新。例如:
// 假设列表控件名为list
char *text = list->GetItemText(list->GetFirstSelectedItemPosition());
if (text)
{
// 发送一条消息以触发列表控件刷新
SendMessage(list, WM_MY_MESSAGE, 0, 0);
}
在消息处理函数中,可以再次调用LB_GETTEXT函数以获取最新的文本。
没有搜到相关的沙龙
领取专属 10元无门槛券
手把手带您无忧上云