永发信息网

MFC线程中如何通过一个窗口的hwnd来点击这个窗口的某个按钮?

答案:2  悬赏:10  手机版
解决时间 2021-01-29 09:21
  • 提问者网友:世勋超人
  • 2021-01-29 06:09
假设我在某个窗口oninitdlg中创建了一个线程,并把这个窗口的hwnd当参数传进去了,现在我想让在子线程中利用hwnd完成对这个窗口的某个按钮的点击操作,这要怎么做?
最佳答案
  • 五星知识达人网友:洒脱疯子
  • 2021-01-29 07:35
从一个有效的hwnd句柄,可以发送消息的方式触发按钮功能。
但你这个,实际上是自己的窗口,相同进程的不同线程,不需要这么费事儿。
CDialog1* p = (CDialog1 *)CWnd::FromHandle(hwnd);
p->OnButton1();//其实按钮响应函数的功能,是可以直接调用的
全部回答
  • 1楼网友:酒者煙囻
  • 2021-01-29 07:56
在createthread创建的线程中调用afxgetapp()就会有问题。 既然你想在线程中访问m_hwnd,解决方法(1)直接在主线程中定义一个全局的hwnd变量保存m_hwnd,这样线程中可直接调用(2)在主线程中定义一个结构体,在结构体中定义一个hwnd变量保存m_hwnd,然后把这个结构体类型的指针传递给createthread的第四个变量,这样同样也能在线程里通过指针访问到变量。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯