由于项目需要将matlab绘制出的图形窗口嵌入到VC界面里去。为了有好的显示效果matlab里让窗口先隐藏然后抓到VC界面里再显示出来。由于matlab程序比较复杂是由合作方提供的。不能用COM等形式实现联合编程。
这里遇到的问题是:FindWindow()函数无法找到隐藏的Figure窗口句柄(显示情况下能找到)
由于对Windows理解不够我无从下手。望高手指明方向。
这里遇到的问题是:FindWindow()函数无法找到隐藏的Figure窗口句柄(显示情况下能找到)
由于对Windows理解不够我无从下手。望高手指明方向。
解决方案 »
- 怎么把复选框的灰色背景色去掉或者改成白色?
- MFC关于添加函数
- mfc串口传输问题
- fatal error C1083: 无法打开包括文件:“windows.h”: No such file or directory
- 如何在一个类中修改另一个类中的成员变量?
- VC6.0的安装问题(装不进去)
- vc 开发
- RECV接收问题!!!!!!!!!
- 子线程消息队列问题,请教。
- ??LINK : warning LNK4089: all references to "SHELL32.dll" discarded by /OPT:REF
- inline内联函数的作用
- 客户端为什么没有调用CoFreeUnusedLibraries()?
我猜,你那matlab的figure可能不是顶级窗口,就是不是主程序的窗口,因此,你可以通过枚举的方式来找到子窗口。代码如下,参考下: CWnd* cwnd=CWnd::FindWindow(NULL,"matlab标题名");//找到matlab的主窗口
CWnd* child=cwnd->GetWindow(GW_CHILD);//获得matlab的第一个子窗口
CString buf;
while(child)
{//这里可以判断是不是你那个figure
child->SendMessage(WM_GETTEXT,50,(LPARAM)(buf.GetBuffer(50)));
buf.ReleaseBuffer();
if (buf=="发送")
{
child->PostMessage(WM_LBUTTONDOWN);
child->PostMessage(WM_LBUTTONUP);
break;
}
else
{
//child->SendMessage(WM_SETTEXT,0,(LPARAM)"hello,this is me");
}
child=(child->GetNextWindow(GW_HWNDNEXT));//获取下一个子窗口
}上面代码是我写的一个自动发消息的代码,修改下,看能用不。