2011-02-09 78 views
3

我正在使用matlab編譯器從我的m文件生成C++共享庫。 是否可以直接在C++ GUI中顯示matlab圖(不在單獨的窗口中)?Matlab繪圖直接在C++ GUI

+1

有趣的問題,雖然恐怕答案可能不是:所有用matlab做的東西都是用java做的 – stijn 2011-02-09 07:58:27

回答

4

我找到了簡單的解決方案。如果你使用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<QWidget*>(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; 
} 
+0

確實不錯! – stijn 2011-03-09 07:53:52

1

MATLAB使用JIDE,它是基於Java/Swing構建的用戶界面。 MATLAB Builder JA也沒有可嵌入數字。因此,我認爲,根據stijn,沒有可嵌入的情節。我很想被證明是錯誤的。