在windows API应用程序中(一个进程)获取一个MFC对话框(另一个进程)的句柄 诸大神请帮忙 5
也就是说两个进程通过消息机制进行通信一个是API编的一个是MFC编的对话框API要获得MFC对话框的句柄然后发送消息如何获取MFC对话框的句柄findwindow都是过了...
也就是说两个进程通过消息机制进行通信 一个是API编的 一个是MFC编的对话框 API要获得MFC对话框的句柄然后发送消息 如何获取MFC对话框的句柄 findwindow 都是过了 还是不行啊
展开
2个回答
展开全部
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);//给任务栏管理运行程序按钮窗口发送删除运
//行按钮的消息
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询