在Pocket Pc中使用LB_GETText获取另外一个进程的listbox的item文本的问题

menye 2007-04-25 10:54:04
在Pocket Pc中使用LB_GETText获取另外一个进程的listbox的item文本,总是返回空,获取不倒,不知道是什么原因,但是使用LB_GETCOUNT是可以正确获取当前listbox中的item个数,
代码如下:
//获取个数 是正确的
int m_nPhoneBookCount = SendMessage (m_hListBox, LB_GETCOUNT, 0, 0) ;

TCHAR temp[64];
memset(temp,0x00,sizeof(TCHAR)*64);
//获取当前listbox指定item的text的长度,这个也是正确的
int tempLen = ::SendMessage (m_hListBox, LB_GETTEXTLEN, 1, 0) ;
//下面获取当前listbox指定item的text,返回的长度为0,temp也没有数据,
tempLen = ::SendMessage(m_hListBox,LB_GETTEXT,1,(LPARAM)temp);

不知道是什么问题,我在pc上一样代码是可以的,sdk文档中是支持LB_GETTEXT的,不知道问题出现在那?请各位帮忙看看,先谢了^_^
...全文
458 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
menye 2007-04-26
  • 打赏
  • 举报
回复
jinhaijian() :
我开始的测试代码就是:
int i = ::SendMessage(m_hListBox,LB_GETCURSEL,0,0);
int tempLen = ::SendMessage (m_hListBox, LB_GETTEXTLEN, i, 0) ;
tempLen = ::SendMessage(m_hListBox,LB_GETTEXT,i,(LPARAM)temp);
执行到LB_GETTEXTLEN的时候,得到是实际的字符长度,但是,LB_GETTEXT以后,得到的返回值tempLen 为0,temp也是为空
GetDlgItemText得到的结果一样是空,百思不得其解^_^
jinhaijian 2007-04-26
  • 打赏
  • 举报
回复
先得到索引看看。
int i = ::SendMessage(m_hListBox,LB_GETCURSEL,0,0);
::SendMessage(m_hListBox,LB_GETTEXT,i,(LPARAM)temp);

其实对于listBox这个的控件。可以直接用GetDlgItemText来拿到选择的内容。
menye 2007-04-26
  • 打赏
  • 举报
回复
还是没有人关心
jinhaijian 2007-04-26
  • 打赏
  • 举报
回复
可能是进程之间的通信造成数据不能传送过来。
你用 TCHAR *temp = new[64];试一下。在堆上分配空间看看。

如果实在不行,WM_COPYDATA,这个消息专门用来进行间的通信,实在没办法可以用一下。
menye 2007-04-25
  • 打赏
  • 举报
回复
自己先up一下,^_^
menye 2007-04-25
  • 打赏
  • 举报
回复
自己先up一下,^_^

7,655

社区成员

发帖
与我相关
我的任务
社区描述
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
社区管理员
  • Windows客户端开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧