VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 735|回复: 1

[求助] 调用窗口消息函数遇到的问题+

[复制链接]
63_avatar_middle
online_vip 发表于 2016-11-23 23:26:36 | 显示全部楼层 |阅读模式
利用GetWindowLong函数取得目标窗口的消息函数:

    WNDPROC fWndProc = (WNDPROC)GetWindowLongW(hwnd, GWL_WNDPROC); //获取窗口wndproc
  
然后用这个指针可以发消息给窗口      fWndProc(hMainWnd, WM_LBUTTONDOWN, wParam, lParam);

在同一线程中可以使用,但我新开一工作线程,在工作线程中使用 fWndProc(hwnd, nMsgId, wParam, lParam);窗口没有响应。

AfxBeginThread(MyControllingFunction,this);

UINT __cdecl MyControllingFunction(LPVOID pParam)
{
        WNDPROC fWndProc = (WNDPROC)GetWindowLong(hMainWnd, GWL_WNDPROC);
       
       
        fWndProc(hMainWnd, WM_LBUTTONDOWN, 0, 0);
}
怎么解决多线程使用窗口的消息函数




上一篇:请教 _itot 的用法
下一篇:Windows锁屏下能否监测键盘和鼠标?
51_avatar_middle
online_admins 发表于 2016-11-26 09:22:33 | 显示全部楼层
一般情况下使用 GetWindowLong 获得窗口的消息函数之后都是为了替换窗口的消息函数。
你这里既然只是单纯为了给窗口发消息为何不得到目标窗口的句柄之后直接在其他线程中进行发送
如果是多线程调用窗口函数的话肯定不行
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-5-25 04:17

Powered by Discuz! X3.4

© 2009-2019 cctry.com

快速回复 返回顶部 返回列表