线程中向CLISTVIEW中发消息。

baoyz 2011-03-10 11:14:38
一个单文档项目,使用CLISTVIEW类。
现在,我要在一个工作线程中向CLISTVIEW类中发消息。
View.h里
void MyDo(WPARAM wp, LPARAM lp);

View.cpp里
#define WM_DO WM_USER + 2
HWND hWndView;

ON_MESSAGE(WM_DO, MyDo)

void CMyView::MyDo(WPARAM wp, LPARAM lp)
{...}

线程里
{
SendMessage(hWndView, WM_DO, 1, (LPARAM)(LPCTSTR)strRead);
}
问题是hWndView怎么获得?在哪里获得。
...全文
94 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
baoyz 2011-03-11
  • 打赏
  • 举报
回复
aiwnx说的对,昨天回来我自己才发现,原来我早就定义了一个CListView *theListCtrl;
这个theListCtrl->m_hwnd,就是我要的hwnd。
oyljerry 2011-03-10
  • 打赏
  • 举报
回复
SendMessage 发送消息给主线程,然后主线程中直接调用CLISTVIEW 的对象来处理
sjdev 2011-03-10
  • 打赏
  • 举报
回复
1.启动线程的时候可以将view的指针传递进去,这样,你就可以通过view的指针来索引hwndlistview了.
2.其实在线程中不用你手动去发消息,ms已经封装了相关函数,操作listview的话你只需要使用ListView_系列的宏就ok了.
aiwnx 2011-03-10
  • 打赏
  • 举报
回复
CListView 的 m_hWnd 成员不就是了?
Lactoferrin 2011-03-10
  • 打赏
  • 举报
回复
那就不用mfc,还简单些
baoyz 2011-03-10
  • 打赏
  • 举报
回复
先谢谢各位了。我知道线程怎么用。知道穿一个参数进去,这些我都做了。

现在是,我得不到CLISTVIEW的HWND参数。
以前一直用对话框做程序,最近用文档做。卡住了。
fishion 2011-03-10
  • 打赏
  • 举报
回复
线程中传参时包含上那个view窗口句柄就行了
青稞 2011-03-10
  • 打赏
  • 举报
回复
把CLISTVIEW的窗口句柄扔到你线程中去..
然后直接向这个句柄发消息.
founderfang 2011-03-10
  • 打赏
  • 举报
回复
你用SDK不要用MFC写一个ListView的程序,写完就很清楚需要发什么消息了。
或者调试跟踪进MFC代码就知道该发什么消息。
wltg2001 2011-03-10
  • 打赏
  • 举报
回复
问题是hWndView怎么获得?在哪里获得
==========
用FindWindowEx可以取得窗口句柄,对于CListView的话可能要多调用几次。
另外可以将CListView的指针传给线程也是一种常用的方法。
baoyz 2011-03-10
  • 打赏
  • 举报
回复
谢谢,这个方法我用过了。我现在想的是直接给CLISTVIEW,发消息。因为以后我还会用到CLISTVIEW_hwnd。
不能总是给主线程发消息吧?

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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