在windows API应用程序中(一个进程)获取一个MFC对话框(另一个进程)的句柄 诸大神请帮忙 5

也就是说两个进程通过消息机制进行通信一个是API编的一个是MFC编的对话框API要获得MFC对话框的句柄然后发送消息如何获取MFC对话框的句柄findwindow都是过了... 也就是说两个进程通过消息机制进行通信 一个是API编的 一个是MFC编的对话框 API要获得MFC对话框的句柄然后发送消息 如何获取MFC对话框的句柄 findwindow 都是过了 还是不行啊 展开
 我来答
liff0710
2012-11-18 · 超过18用户采纳过TA的回答
知道答主
回答量:75
采纳率:0%
帮助的人:44.1万
展开全部
你是想把消息发给MFC 对话框主窗口,还是主窗口中的一个控件(比如该窗口中的一个按钮或都编辑框)?

首先,要确保你已经用findwindow,找到了该对话框的HWND;
然后用GetDlgItem得到你要控制的控件的HWND,然后再把消息发给这个控件。
归悦欣cf
2012-11-10 · TA获得超过1444个赞
知道大有可为答主
回答量:4250
采纳率:59%
帮助的人:1327万
展开全部
findwindow是获取进程窗口对象指针最常用的办法,应该没问题的。
更多追问追答
追问
我在API进程中用断点跟了一下 句柄为0 消息发不出去  报错倒是没有 就是没有响应
我是这样写的FindWindow(“CReturnMsgDlg”,NULL),其中CReturnMsgDlg是MFC对话框类名 你看有没有啥问题
追答
FindWindow(“CReturnMsgDlg”,NULL),中第一个参数不是C++中所说的类,而应该是Win32中所说的窗口类,你可以在网上搜一下“如何获取另一个进程窗口句柄”就会知道了,以下是我控制任务栏的代码,参考一下:
HWND hWnd = ::FindWindow("Shell_TrayWnd",NULL);//获取任务栏主窗口句柄,窗口类名为
//Shell_TrayWnd
hWnd=::FindWindowEx(hWnd,NULL,"ReBarWindow32",NULL);//获取hWnd窗口类名为
//ReBarWindow32子窗口句柄
hWnd=::FindWindowEx(hWnd,NULL,"MSTaskSwWClass",NULL);//获取hWnd窗口类名为
//MSTaskSwWClass子窗口句柄
hWnd=::FindWindowEx(hWnd,NULL,"ToolBarWindow32",NULL);//获取hWnd窗口类名为
//ToolBarWindow32子窗口句柄
CToolBar* Wnd=(CToolBar*)FromHandle(hWnd);
Wnd->SendMessage(TB_DELETEBUTTON,1,0);//给任务栏管理运行程序按钮窗口发送删除运
//行按钮的消息
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式