亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? guivc.txt

?? 將MATLAB窗口畫在VC的GUI上 輕松實現(xiàn)用MATLAB和VC畫圖
?? TXT
字號:
將MATLAB窗口畫在VC的GUI上
山城棒棒兒軍 @ 2004-06-29 17:18

將MATLAB窗口畫在VC的GUI上 
這幾天,根據(jù)simwe論壇的scie提供的思路以及源代碼,照著練習(xí)了一下。估計scie的matlab是6.1的,反正直接下載他的源代碼,在我的機(jī)器上編譯不通過。仔細(xì)設(shè)置斷點,單步調(diào)試分析,總算找出了出錯的地方,在于函數(shù)mlfHGInitialize( ),這個函數(shù)的調(diào)用方式不對。scie以及何強(qiáng)、何英的《MATLAB擴(kuò)展編程》一書中講到的調(diào)用方式都是mlfHGInitialize( NULL,NULL)。而我在libsglinit.cpp文件中看到的調(diào)用格式只有兩種: 
mwLibhgInit( const char *name, mexcpp_information info ) 
     : init(1), mwLibInit( name, info ) { const char *p = "lib"; int argc = 1; mlfHGInitialize( &argc, &p ); } 
 mwLibhgInit(mexcpp_information info) 
   : init(1), mwLibInit(info) { const char *p = "lib"; int argc = 1; mlfHGInitialize( &argc, &p ); } 
 mwLibhgInit(mexcpp_information info, int* argc, const char** argv) 
   : init(1), mwLibInit(info) { mlfHGInitialize(argc, argv); } 
 ~mwLibhgInit() { if (init) {mlfHGWaitForFiguresToDie(); mlfHGTerminate();} } 
因此,照類似的調(diào)用方式修改源代碼后,程序就能夠正常運行了。 
下面說說整個程序的實現(xiàn)步驟及其關(guān)鍵部分。 
我自己的程序是采用matlab數(shù)學(xué)庫編寫的,沒有利用對m文件進(jìn)行預(yù)先編譯的源文件。不過,可以寫出m文件,進(jìn)行編譯,采用的命令是: 
mcc -p -W mainhg libmwsglm.mlib drawSin.m 
  經(jīng)過編譯,得到cpp文件,利于自己找到需要的命令。譬如,在編譯后的cpp文件中,我找到了Nfigure,Nclose等命令。在基于對話框的VC的MFC界面上畫圖。具體步驟是: 
1. 在VC中建立一個基于對話框的MFC工程MatVcGUI; 
2. 在Dialog上布置好相應(yīng)的控件,其中主要有接收輸入?yún)?shù)的Edit box控件、畫圖窗口(將MATLAB的figure放置位置的地方)的Group box控件(IDC_MATDRAW),以及運行按鈕控件; 
3. 編寫繪圖按鈕的響應(yīng)函數(shù)大致如下: 
void CMatVcGUIDlg::OnDraw() 
{ 
int bWait = 0; 
if(tobool(isempty(h_a))) 
{ 
    // figure窗口的一些屬性設(shè)置 
char FigName[]="_Figure_"; 
double BKColor[] = {0.9,0.9,0.9}; 
char strVisible[] = "Off"; 
mwArray mwFigName(FigName); 
mwArray mwBKColor(1,3,BKColor); 
mwArray mwVisible(strVisible); 
    // 根據(jù)屬性值創(chuàng)建axis對象句柄,稍后解釋CreateAxis函數(shù) 
h_a = CreateAxis(mwFigName,mwBKColor,mwVisible); 
  //  Win32API函數(shù)FindWindow根據(jù)窗口名稱尋找窗口句柄 
HWND hFig=::FindWindow(NULL,FigName); 
if(hFig == NULL) 
{ 
AfxMessageBox("不能夠創(chuàng)建Figure窗口,繪圖失敗!"); 
return; 
} 
   //  Win32API函數(shù)獲取窗口屬性,具體含義查找MSDN 
long lStyle = ::GetWindowLong(hFig,GWL_STYLE); 
//  Win32API函數(shù)設(shè)置窗口屬性,去掉標(biāo)題欄與邊框 
::SetWindowLong(hFig, GWL_STYLE,lStyle& 
(~WS_CAPTION) & (~WS_THICKFRAME)); 
       // 設(shè)置窗口初始位置(反正窗口不可見的,無所謂) 
 ::SetWindowPos(hFig,NULL,0,0,0,0,SWP_NOMOVE | SWP_NOSIZE 
| SWP_NOZORDER | SWP_NOACTIVATE | SWP_FRAMECHANGED); 
RECT PlotRec; 
   // 獲得繪圖窗口的控件的窗口句柄 
CWnd *PlotArea = GetDlgItem(IDC_MATDRAW); 
// 得到繪圖窗口控件(group box)的矩形區(qū)域位置 
PlotArea->GetWindowRect(&PlotRec); 
   // 得到繪圖窗口控件的寬與高 
long Width = PlotRec.right - PlotRec.left; 
long Height = PlotRec.bottom - PlotRec.top; 
  // 用Win32API函數(shù)將figure窗口(hFig)的父窗口設(shè)置為繪圖窗口控件 
::SetParent(hFig, PlotArea->GetSafeHwnd()); 
  // 用Win32API函數(shù)設(shè)置figure窗口在繪圖窗口控件中的相對位置及其顯示風(fēng)格 
::SetWindowPos(hFig,NULL,1,7,Width-2,Height-10, 
SWP_NOZORDER | SWP_NOACTIVATE); 
// 繪制圖形,稍后解釋 
DrawSin(); 
  // 將axes的父figure窗口設(shè)置為可見,稍后解釋 
SetVisible(h_a,mwArray("On")); 
bWait = 1; 
  // 進(jìn)入窗口等待狀態(tài),運行了Vclose()函數(shù)后,將接著此句之后往下執(zhí)行 
mlfHGWaitForFiguresToDie(); 
} 
if(bWait == 0) 
DrawSin(); 
} 
其中,涉及到的幾個函數(shù)的應(yīng)用的解釋: 
A.  mwArray CMatVcGUIDlg::CreateAxis(mwArray strFigName, 
mwArray BKColor, mwArray strVisible) 
{ 
//hf = figure('NumberTitle','off','Name','testMixFigure','Menubar','none', 
// 'Color',[0.8 0.8 0.8],'visible','off','DoubleBuffer','on'); 
mwArray h_f = figure( 
mwArray("NumberTitle"),mwArray("Off"), 
mwArray("Name"),strFigName,//strFigName, 
mwArray("Menubar"),mwArray("None"), 
mwArray("Color"),BKColor, 
mwArray("Visible"),strVisible,//strVisible, 
mwArray("DoubleBuffer"),mwArray("On")); 
  // h_a = axes('Parent', h_f, 'Box', 'On'); 
mwArray h_a = axes(mwArray("Parent"),h_f,mwArray("Box"),mwArray("On")); 
return h_a; 
} 

B. void CMatVcGUIDlg::DrawSin() 
{ 
UpdateData(TRUE); 
if(tobool(isempty(h_a))) 
OnDraw(); 
else{   
double pi = 3.141592653589793; 
// t=0:0.05:2; 
mwArray t = colon(0,0.05,2); 
  //  y = a* sin(2pi*w*t); 其中a,w是類成員變量,接收輸入?yún)?shù) 
//  h_a是類成員變量,為創(chuàng)建的axes對象句柄; 
  mwArray y = a*sin(2*pi*w*t); 
      // plot(t, y, 'Parent', h_a); 
  Vplot(t,y,mwArray("Parent"),h_a); 
} 
} 

C. void CMatVcGUIDlg::SetVisible(mwArray h_a, mwArray strVisible) 
{ 
// h_f = get(h_a,"Parent"); 
mwArray h_f = get(h_a, mwArray("Parent")); 
// set(h_f,"Visible",strVisible); 
   Vset(h_f, mwArray("Visible"), strVisible); 
} 

4. 在BOOL CMatVcGUIDlg::OnInitDialog()中加入如下代碼,進(jìn)行MATLAB的庫的初始化: 
   h_a = empty(); 
libmmfileInitialize(); 
libmwsglmInitialize(); 
int argc; 
argc=1; 
const char *p = "lib"; 
mlfHGInitialize(&argc,&p); 

5. 在void CMatVcGUIDlg::OnClose() 加入函數(shù)Vclose在退出程序的時候關(guān)閉打開的figure窗口。     
void CMatVcGUIDlg::OnClose() 
{ 
// close('all'); 
Vclose(mwArray("all")); 
CDialog::OnClose(); 
} 

6. 在void CMatVcGUIDlg::OnDestroy() 中加入如下代碼中止MATLAB的一些庫 
   libmwsglmTerminate(); 
libmmfileTerminate(); 
mlfHGTerminate(); 



總結(jié) 
1. 用到的Win32API函數(shù): 
FindWindow() 
GetWindowLong() 
SetWindowLong() 
SetWindowPos() 
GetDlgItem() 
GetWindowRect() 
SetParent() 
SetWindowPos() 
具體的使用查找Win32API手冊以及MSDN,其實還有很多其他的有用的API函數(shù),有空了解了解Win32API手冊。 

2. 用到的MATLAB庫函數(shù)主要有: 
libmmfileInitialize(); 
libmwsglmInitialize(); 
   mlfHGInitialize(&argc,&p); 
   mlfHGWaitForFiguresToDie(); 
libmwsglmTerminate(); 
libmmfileTerminate(); 
mlfHGTerminate(); 
figure,axes,plot,Vclose等函數(shù),這些函數(shù)也可以有其他的一些形式。 
具體的再libmwsglm.hpp中,其中還給出了很多其他函數(shù)的原型。在程序調(diào)試過程中出現(xiàn)一些錯誤的時候,應(yīng)該可以自己想辦法在這些頭文件中尋找解決辦法。涉及繪圖的函數(shù)主要在libmwsglm.hpp,libsgl.hpp中,想必其他函數(shù)(數(shù)學(xué)庫的)也應(yīng)該在某些頭文件中找到他們的聲明。 

3. mlfHGWaitForFiguresToDie()函數(shù)的作用 
  mlfHGWaitForFiguresToDie()函數(shù)使得窗口進(jìn)入等待狀態(tài),沒有他,生成的figure立即銷毀,在Vclose all之后,返回到該函數(shù)的下一個語句接著往下執(zhí)行。 


 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91视频国产资源| 在线视频你懂得一区| 国产午夜精品久久| 国产精品一品二品| 亚洲国产精品成人综合| 成人av网站免费| 亚洲精品少妇30p| 欧美图区在线视频| 久久国内精品视频| 国产欧美一区二区精品仙草咪| 成人毛片视频在线观看| 亚洲免费观看高清完整版在线观看| 91传媒视频在线播放| 五月综合激情网| 精品欧美一区二区三区精品久久| 久久66热偷产精品| 亚洲欧美一区二区视频| 欧美三级乱人伦电影| 另类小说色综合网站| 国产日韩高清在线| 色噜噜狠狠色综合中国| 日韩—二三区免费观看av| 久久久久高清精品| 色域天天综合网| 奇米777欧美一区二区| 国产亚洲人成网站| 色噜噜久久综合| 久久9热精品视频| 亚洲视频每日更新| 91精品国产综合久久精品图片| 国产一区在线精品| 一区二区日韩av| 精品国产一区二区亚洲人成毛片| 国产91精品久久久久久久网曝门| 一区二区三区在线观看国产| 日韩一区二区在线播放| 成人性生交大合| 五月天一区二区| 久久影视一区二区| 91成人网在线| 国产精一品亚洲二区在线视频| 亚洲欧美激情视频在线观看一区二区三区 | 亚洲黄色小视频| 精品国产sm最大网站免费看| 91美女在线观看| 久久99久久精品| 一区二区国产视频| 久久久高清一区二区三区| 欧美体内she精高潮| 国产成人在线免费| 视频在线观看91| 国产精品久99| 精品日韩99亚洲| 欧美日韩一区二区在线观看| 国产美女一区二区| 性做久久久久久久免费看| 亚洲国产精品精华液2区45| 欧美区一区二区三区| 成人av片在线观看| 麻豆91免费观看| 亚洲综合精品自拍| 国产精品女主播在线观看| 7777精品久久久大香线蕉| 99久久er热在这里只有精品15 | av激情亚洲男人天堂| 日本vs亚洲vs韩国一区三区二区| 综合婷婷亚洲小说| 国产亚洲欧美激情| 日韩一区二区三区视频在线| 色偷偷一区二区三区| 国产伦精一区二区三区| 手机精品视频在线观看| 亚洲九九爱视频| 国产日产欧产精品推荐色| 欧美一区二区三区性视频| 在线一区二区三区做爰视频网站| 国产成人精品三级| 久久精品国产精品亚洲综合| 亚洲国产乱码最新视频| 一区二区欧美国产| 欧美极品xxx| 日韩免费一区二区三区在线播放| 欧美视频你懂的| 91影院在线观看| 成人午夜电影网站| 国产又黄又大久久| 九色综合国产一区二区三区| 天天亚洲美女在线视频| 亚洲成人动漫一区| 一区二区三区产品免费精品久久75 | 欧美日本韩国一区二区三区视频| 91影院在线免费观看| 99麻豆久久久国产精品免费优播| 国产精品一区三区| 国内精品视频666| 久久97超碰色| 久久国产尿小便嘘嘘尿| 免费看黄色91| 日本亚洲免费观看| 日本在线不卡视频| 婷婷开心激情综合| 日本最新不卡在线| 青青草精品视频| 免费人成精品欧美精品| 日本成人在线不卡视频| 日本中文在线一区| 麻豆久久久久久久| 麻豆国产精品官网| 久久99精品国产麻豆婷婷| 久久精品理论片| 麻豆91在线播放| 国产一区二区免费在线| 国产精品主播直播| 成人福利在线看| aaa欧美日韩| 色综合久久综合中文综合网| 99re热视频这里只精品| 91视视频在线观看入口直接观看www | 免费看欧美美女黄的网站| 美日韩一区二区| 人人精品人人爱| 国产一区二区三区四区五区美女 | 国产麻豆精品在线| 成人午夜免费av| 99re热视频这里只精品| 91久久一区二区| 欧美日韩一区二区三区四区五区| 9191成人精品久久| 日韩一区二区三区精品视频| 日韩欧美激情在线| 久久久青草青青国产亚洲免观| 日本一区二区三区国色天香 | 亚洲国产精品99久久久久久久久| 亚洲国产高清在线观看视频| 中文字幕字幕中文在线中不卡视频| 亚洲免费观看视频| 日韩av在线播放中文字幕| 精品制服美女丁香| 成人综合婷婷国产精品久久免费| 99麻豆久久久国产精品免费优播| 欧美性三三影院| 欧美不卡一二三| 国产精品视频看| 亚洲综合另类小说| 精品在线播放午夜| 成人免费视频视频| 欧日韩精品视频| 日韩免费观看高清完整版| 国产欧美一区二区精品婷婷| 综合色天天鬼久久鬼色| 亚洲成a人片在线观看中文| 捆绑变态av一区二区三区| 成人av在线资源网| 欧美在线一区二区| 欧美大片一区二区| 国产精品久久精品日日| 亚洲午夜久久久久中文字幕久| 蜜桃视频在线观看一区| www.爱久久.com| 欧美精品xxxxbbbb| 国产亲近乱来精品视频| 亚洲一区二区三区不卡国产欧美| 毛片av一区二区| 99久久久免费精品国产一区二区| 欧美日韩免费电影| 国产丝袜美腿一区二区三区| 一区二区三区在线免费播放| 久草在线在线精品观看| 91蜜桃视频在线| 欧美mv和日韩mv国产网站| 亚洲欧美另类小说| 精品一区二区三区日韩| 99精品视频一区二区三区| 91精品国产高清一区二区三区蜜臀| 国产女同性恋一区二区| 午夜影视日本亚洲欧洲精品| 国产99久久精品| 在线电影院国产精品| 国产精品欧美一区喷水| 蜜臀av国产精品久久久久| 99视频热这里只有精品免费| 91精品国产91综合久久蜜臀| 中文字幕亚洲在| 韩国毛片一区二区三区| 欧美日产国产精品| 国产精品国产自产拍在线| 蜜臀99久久精品久久久久久软件| 色婷婷综合久色| 国产亚洲美州欧州综合国| 丝袜美腿高跟呻吟高潮一区| 波多野洁衣一区| 精品91自产拍在线观看一区| 亚洲国产综合人成综合网站| 成人h动漫精品一区二区| 日韩欧美国产一二三区| 一区二区三区在线免费视频| 成人自拍视频在线观看| 67194成人在线观看| 亚洲卡通欧美制服中文| 成人一二三区视频|