2014-07-08 14 views
6

tôi có một tệp m matlab, để vẽ một số chức năng. Sử dụng MATLAB, tôi đã tạo ra dự án lắp ráp mạng và cuối cùng tôi có một dll để làm việc với. Tôi có một ứng dụng winform được tạo ra trong studio trực quan bằng cách sử dụng C#, và tôi gọi dll của tôi (được tạo trong MATLAB) từ ứng dụng của tôi. Cuối cùng tôi nhận được một đồ thị trong cửa sổ mới (con số lệnh trong MATLAB). Ví dụ: Ví dụ: trông giống như: http://i.stack.imgur.com/cbq5Z.pnglàm thế nào để vẽ hình MATLAB bên trong ứng dụng winform?

Có thể nhúng hình matlab vào ứng dụng biểu mẫu winform của mình không?

http://i.stack.imgur.com/S9V9s.png Đang lưu ảnh trong MATLAB và tải nó vào PictureBox trong Winform không phải là một giải pháp tốt, bởi vì tôi cần để vận hành con số (zoom, xoay trong 3d).

Trả lời

4

Matlab plots directly inside c++ GUI

Đây là những gì bạn cần. Bạn phải nhập phương thức FindWindow() từ User32.dll. Nó trả về một con trỏ đến cửa sổ mà bạn đặt tên là đối số thứ hai. Sau khi bạn có con trỏ, bạn phải thiết lập nó là cha mẹ, sử dụng phương thức SetParent(), mà bạn có thể lấy từ User32.dll. Để có được một con trỏ đến hình thức của bạn, sử dụng this.Handle:

IntPtr foundWindow = FindWindow("SunAwtFrame", "Figure 1"); //I belive, this shall give you a pointer to your Matlab window 
SetParent(foundWindow, this.Handle); 

Và bạn có thể quản lý vị trí và kích thước foundWindow sử dụng SetWindowPos() và SetWindowLong() (nhập những từ User32.dll).

+0

Tuyệt vời! Cảm ơn bạn! – sagamor

+0

@Denver, Mã này có cần phần mềm MATLAB được cài đặt trong máy tính của tôi không? –

Các vấn đề liên quan