2011-02-09 19 views
3

私はmファイルからC++共有ライブラリを生成するためにmatlabコンパイラを使用しています。 matlabのプロットをC++ GUIの中に直接表示することはできますか?MatlabはC++ GUIの中に直接描画します

+1

興味深い質問がありますが、私は答えがいいかもしれません:matlabのすべてのuiのものがjavaで行われます – stijn

答えて

4

簡単な解決策が見つかりました。あなたがウィンドウを使用している場合は、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

+0

これは答えとしてマークする必要があります。私はちょうどWPFアプリケーションにmatlabの表面プロットを埋め込むためにそれを使用し、それは素晴らしい作品です。 – stijn

+0

こんにちは@Hororiy!同じことをwpfで行うことは可能ですか?私は私のwpfアプリケーション(別のウィンドウではない)内にmatlabのプロットを表示する必要があります。親切に私を助けてください。前もって感謝します。 – PRABHAKARAN

1

MATLABは、ユーザーインターフェイス用にJava/Swing上に構築されたJIDEを使用します。埋め込み可能な数値はMATLAB Builder JAでも利用できませんでした。したがって、私は、stijnによれば、埋め込み可能なプロットはないと思う。私は間違っていることを証明したい。

関連する問題