我正在使用matlab编译器从我的m文件生成c ++共享库。是否可以在c ++ GUI中直接显示matlab图(不在单独的窗口中)?
回答:
我找到了简单的解决方案。如果您使用的是Windows,则可以将父级设置为matlab窗口。这样的事情。
HWND h = FindWindow(L"SunAwtFrame", L"Figure 1"); void MatlabViewerHack::EmbedMatlabPlot(HWND h) { SetWindowPos(h,NULL,rect.left(), rect.top(), rect.width(), rect.height(),0); SetWindowLong(h, GWL_STYLE,WS_CHILD|WS_VISIBLE); SetParent(h, parent_widget); //dynamic_cast(parent())->winId() //updating ui_state, windows xp, window 7 SendMessage(h, WM_UPDATEUISTATE, UIS_INITIALIZE, 0); SendMessage(parent_widget, WM_UPDATEUISTATE, UIS_INITIALIZE, 0); SendMessage(h, WM_CHANGEUISTATE, UIS_INITIALIZE, 0); SendMessage(parent_widget, WM_CHANGEUISTATE, UIS_INITIALIZE, 0); current_window = h; }
更多&回答...