999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于MFC的激光筆輔助教學(xué)系統(tǒng)的界面設(shè)計

2015-07-27 08:18:13北京林業(yè)大學(xué)北京100083
山東工業(yè)技術(shù) 2015年21期
關(guān)鍵詞:用戶

邵 麟,謝 濱,閆 磊(北京林業(yè)大學(xué),北京 100083)

基于MFC的激光筆輔助教學(xué)系統(tǒng)的界面設(shè)計

邵 麟,謝 濱,閆 磊
(北京林業(yè)大學(xué),北京 100083)

目前投影儀和大屏幕在教學(xué)、展示、會議、演講等各個方面得到了廣泛應(yīng)用。但是,用戶與計算機之間的交互,仍局限于鍵盤和鼠標(biāo)。本文將在闡述MFC框架結(jié)構(gòu)的基礎(chǔ)上介紹一種基于MFC的激光筆輔助教學(xué)系統(tǒng)的界面設(shè)計,通過OPENCV開源計算機視覺庫分析攝像頭所采集的激光的移動路徑,借助復(fù)雜的圖像處理技術(shù),將位置信息返回給MFC進行處理,最終使用戶能夠?qū)崿F(xiàn)遠距離的實時繪制激光移動軌跡,根據(jù)所需進行標(biāo)記與繪畫等。

MFC;界面設(shè)計;激光筆輔助教學(xué)

1 MFC簡介

Microsoft Visual Studio 2010是微軟公司推出的功能強大的可視化Windows平臺集成開發(fā)環(huán)境,MFC是其中的一個重要組成部分[1]。MFC(Microsoft Foundation Class Library)是微軟公司對大部分標(biāo)準(zhǔn)Win32 API函數(shù)的封裝,是面向?qū)ο蟮幕A(chǔ)類庫,利用這些類可以有效地完成基于Windows的程序開發(fā)。

MFC類庫是C++語言與Windows的接口,提供了大量預(yù)先編寫的類和代碼。利用MFC編寫程序的本質(zhì)是選擇該類庫中合適的類,并調(diào)用其下相應(yīng)成員函數(shù)來完成程序所需的特定功能。

2 MFC框架結(jié)構(gòu)

AppWizard(應(yīng)用程序向?qū)В┖虲lass Wizard(類向?qū)В┦荲isual C++中兩個十分重要的向?qū)ЫM件。AppWizard可以用來生成一個MFC類庫的Windows應(yīng)用程序基本框架,它以一系列對話框的形式來詢問用戶所建立的應(yīng)用程序的類型和特征信息,根據(jù)用戶的選擇自動生成應(yīng)用程序的基本源代碼;Class Wizard用來管理程序中的類、對象和消息,協(xié)助用戶在應(yīng)用程序框架中添加代碼以完成具體的功能[2]。

整體上,MFC框架定義了應(yīng)用程序的輪廓,并提供了用戶接口的標(biāo)準(zhǔn)實現(xiàn)方法,用戶所要做的就是通過預(yù)定義的接口把應(yīng)用程序特有的東西填入這個輪廓[2]。這種利用向?qū)ё詣由捎脕硗瓿沙R?guī)編程任務(wù)的源代碼的形式,大大簡化了Windows應(yīng)用程序的設(shè)計工作并節(jié)約了設(shè)計者的開發(fā)時間。

3 MFC消息映射機制以及消息分類

3.1 MFC消息映射機制

MFC使用一種消息映射機制來處理消息,在應(yīng)用程序框架中的表現(xiàn)就是一個消息與消息處理函數(shù)一一對應(yīng)的消息映射表,以及消息處理函數(shù)的聲明和實現(xiàn)等代碼[3]。當(dāng)窗口接收到消息時,會到消息映射表中查找該消息對應(yīng)的消息處理函數(shù),然后由消息處理函數(shù)進行相應(yīng)的處理。

3.2 消息分類

MFC中消息分為以下三類:

(1)標(biāo)準(zhǔn)消息。除WM_COMMAND外,所有以WM_開頭的消息是標(biāo)準(zhǔn)消息。從CWnd派生的類,都可以接收到這類消息; (2)命令消息。來自菜單、加速鍵或工具欄按鈕的消息。消息名以WM_ COMMAND呈現(xiàn)。在MFC中,通過菜單項的標(biāo)識(ID)來區(qū)分不同的命令消息。從CCmdTarget派生的類,都可以接收到這類消息; (3)通知消息。由控件產(chǎn)生的消息,例如,按鈕的單擊,列表框的選擇等均產(chǎn)生此類消息,為的是向其父窗口通知事件的發(fā)生。消息名也是WM_COMMAND。

從CCmdTarget派生的類,都可以接收到這類消息[4]。

MFC中各派生類與接收的消息類型關(guān)系如圖1所示。

圖1 MFC派生類與接受消息類型關(guān)系圖

4 MFC功能實現(xiàn)

4.1 功能介紹

目前,多媒體演示 已滲透到人類活動的方方面面,投影儀和大屏幕在教學(xué)、展示、會議、演講等處更是得到了廣泛應(yīng)用。但是,用戶與計算機之間的交互,仍局限于鍵盤和鼠標(biāo),當(dāng)用戶想一邊講演一邊標(biāo)注時,只能局限于計算機旁,不能自由走動,當(dāng)遠離計算機時,雖能用世面上一些激光筆指示所講內(nèi)容,卻又不能對所講內(nèi)容留下標(biāo)記。基于以上缺憾,本實驗設(shè)計了激光筆輔助教學(xué)系統(tǒng),用戶能借助激光筆遠距離的在投影幕布上進行指示的同時又能對指示內(nèi)容進行相應(yīng)的標(biāo)記,利用攝像頭采集激光的移動軌跡,運用OPENCV計算機視覺庫對采集到的視頻進行復(fù)雜的圖像處理,最終將激光點的坐標(biāo)返回給MFC進行最后的實時繪圖工作。以下重點闡述激光筆輔助教學(xué)系統(tǒng)中MFC所起到的重要作用。

4.2 設(shè)計流程

功能流程圖如圖2所示。

圖2 功能流程圖

4.3 獲取桌面窗口句柄

本實現(xiàn)的目的是在大屏幕上激光筆所指示位置留下對應(yīng)的軌跡痕跡,即需要在整個桌面上進行繪圖工作。那么,我們需要獲取到跟桌面相關(guān)的句柄,此后所有的繪圖操作,都在桌面這個窗口上顯示,而定義一個CWindowDC類型的對象意味著它可以訪問整個屏幕區(qū)域(包括客戶區(qū)域和非客戶區(qū)域),滿足了本實驗的要求,具體實現(xiàn)代碼如下:CWindowDC dc(GetDesktopWindow());//指示一個和桌面窗口相關(guān)的dc

4.4 設(shè)置線寬、顏色等信息

在MFC中,對資源的操作通常都是通過一個與資源相關(guān)的類來完成的。對話框資源也有一個相應(yīng)的基類。因此首先需要創(chuàng)建一個類與要調(diào)用的子對話框相關(guān)聯(lián)(或者也可以選擇程序中已有的一個類與之相關(guān)聯(lián))[3]。

本實驗自定義一個設(shè)置線寬的對話框類CSettingDlg和應(yīng)用一個已有的顏色對話框類CColorDialog,具體實現(xiàn)代碼實現(xiàn)如下:

CSettingDlg dlg;//生成一個自定義設(shè)置線寬的對話框的類的對象dlg.m_nLineWidth=m_nLineWidth;//將先前設(shè)置的值保留下來并顯示if(IDOK==dlg.DoModal())// {

m_nLineWidth=dlg.m_nLineWidth;//當(dāng)用戶選擇確定按鈕時將線寬值保存起來

}

CColorDialog dlg; //生成一個已有的顏色對話框的類的對象

dlg.m_cc.rgbResult=m_clr;//保存上次選擇的顏色

if(IDOK==dlg.DoModal())

{

m_clr=dlg.m_cc.rgbResult;// 當(dāng)用戶選擇確定按鈕時將顏色值保存起來

}

最后在View.cpp中的消息處理函數(shù)中按照用戶的選擇創(chuàng)建畫筆,代碼實現(xiàn)如下:

CPen pen(PS_SOLID,m_nLineWidth,m_clr);//按照上文指定的線寬和顏色創(chuàng)建畫筆

dc.SelectObject(&pen);//將此畫筆選擇到設(shè)備描述表當(dāng)中

4.5 繪圖工作

完成以上處理工作后,在Microsoft Visual Studio 2010中完成OPENCV計算機視覺開發(fā)庫的環(huán)境配置,并利用OPENCV處理后得到的坐標(biāo),在MFC中,使用dc.MoveTo()和dc.LineTo()函數(shù)根據(jù)不同的需求選擇不同的劃線方式。具體實現(xiàn)代碼不再累述。

4.6 激光筆輔助教學(xué)系統(tǒng)運行效果如圖3所示

圖3 效果圖

5 結(jié)語

本文主要闡述了MFC的基本框架結(jié)構(gòu)和基于MFC的激光筆輔助教學(xué)系統(tǒng)的界面設(shè)計。從MFC的實現(xiàn)步驟中可以看出MFC是C++實現(xiàn)界面可視化的核心,借助于MFC應(yīng)用程序框架可以更加方便地編寫Windows應(yīng)用程序,也便于開發(fā)更加復(fù)雜的應(yīng)用程序。

[1]車忠志,孫雪雁.MFC應(yīng)用程序基本框架分析[J].農(nóng)業(yè)網(wǎng)絡(luò)信息,2010(09):9-12.

[2]楊建紅.文檔/視圖結(jié)構(gòu)的MFC應(yīng)用程序基本框架分析[J].湖北工學(xué)院學(xué)報,2004(04):25-30.

[3]徐璇,姜明新,黃靜,徐晶,李敏.基于MFC的工程軟件界面設(shè)計[J].電子設(shè)計工程,2011(21):13-15.

[4]孫鑫.VC++深入詳解[M].北京:電子工業(yè)出版社,2006.

本文系北京林業(yè)大學(xué)2015年北京市大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計劃項目(項目編號: S201510022086 )資助。

10.16640/j.cnki.37-1222/t.2015.21.242

猜你喜歡
用戶
雅閣國內(nèi)用戶交付突破300萬輛
車主之友(2022年4期)2022-08-27 00:58:26
您撥打的用戶已戀愛,請稍后再哭
關(guān)注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關(guān)注用戶
商用汽車(2016年5期)2016-11-28 09:55:15
兩新黨建新媒體用戶與全網(wǎng)新媒體用戶之間有何差別
關(guān)注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關(guān)注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
挖掘用戶需求尖端科技應(yīng)用
Camera360:拍出5億用戶
100萬用戶
主站蜘蛛池模板: a级毛片一区二区免费视频| 国产精品无码久久久久久| 亚洲三级色| 亚洲—日韩aV在线| 欧美人在线一区二区三区| 久久永久视频| 精品免费在线视频| 国产亚洲欧美在线人成aaaa| 日a本亚洲中文在线观看| 国产丰满大乳无码免费播放| 高清不卡毛片| 婷婷99视频精品全部在线观看| 亚洲综合天堂网| 亚洲精品中文字幕无乱码| 无码内射中文字幕岛国片| 亚洲天堂网在线播放| 日本三级欧美三级| 日本一本正道综合久久dvd| 中文无码影院| 久久综合久久鬼| 狼友视频一区二区三区| 亚洲精品天堂自在久久77| 日本欧美午夜| 日韩欧美视频第一区在线观看 | 亚洲性日韩精品一区二区| 国产自无码视频在线观看| 在线中文字幕网| 99久久亚洲精品影院| 99人妻碰碰碰久久久久禁片| 久青草网站| 日韩无码黄色网站| 9久久伊人精品综合| 亚洲aⅴ天堂| 久草视频一区| 一级毛片免费观看久| 国产日本视频91| 国产内射一区亚洲| av手机版在线播放| 美女被躁出白浆视频播放| 麻豆精品视频在线原创| 91毛片网| 美女免费黄网站| 精品91视频| 国产一区二区三区在线无码| 久夜色精品国产噜噜| 国产欧美高清| 免费看一级毛片波多结衣| 国产高清色视频免费看的网址| av大片在线无码免费| 国产亚洲精| 国产综合另类小说色区色噜噜| 久久女人网| 久草视频福利在线观看| 成人免费网站久久久| 亚洲高清在线播放| 欧美天堂在线| 欧美激情首页| 91午夜福利在线观看| 欧美yw精品日本国产精品| 综合亚洲网| 色综合国产| 亚洲欧美另类视频| 国产手机在线小视频免费观看| 久久久四虎成人永久免费网站| 欧美精品在线免费| 亚洲色图在线观看| 国产精品免费福利久久播放| 亚洲熟妇AV日韩熟妇在线| 怡红院美国分院一区二区| 国内熟女少妇一线天| 日韩毛片视频| 国产乱人视频免费观看| 天堂岛国av无码免费无禁网站| 青青久视频| 日韩专区欧美| 久久性妇女精品免费| 日本免费高清一区| 日韩小视频在线观看| 日本免费高清一区| 日本免费精品| 欧美笫一页| 久久频这里精品99香蕉久网址|