亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2015-07-27 08:18:13北京林業(yè)大學(xué)北京100083
        山東工業(yè)技術(shù) 2015年21期
        關(guān)鍵詞:線(xiàn)寬教學(xué)系統(tǒng)界面設(shè)計(jì)

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

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

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

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

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

        1 MFC簡(jiǎn)介

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

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

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

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

        整體上,MFC框架定義了應(yīng)用程序的輪廓,并提供了用戶(hù)接口的標(biāo)準(zhǔn)實(shí)現(xiàn)方法,用戶(hù)所要做的就是通過(guò)預(yù)定義的接口把應(yīng)用程序特有的東西填入這個(gè)輪廓[2]。這種利用向?qū)ё詣?dòng)生成用來(lái)完成常規(guī)編程任務(wù)的源代碼的形式,大大簡(jiǎn)化了Windows應(yīng)用程序的設(shè)計(jì)工作并節(jié)約了設(shè)計(jì)者的開(kāi)發(fā)時(shí)間。

        3 MFC消息映射機(jī)制以及消息分類(lèi)

        3.1 MFC消息映射機(jī)制

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

        3.2 消息分類(lèi)

        MFC中消息分為以下三類(lèi):

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

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

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

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

        4 MFC功能實(shí)現(xiàn)

        4.1 功能介紹

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

        4.2 設(shè)計(jì)流程

        功能流程圖如圖2所示。

        圖2 功能流程圖

        4.3 獲取桌面窗口句柄

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

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

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

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

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

        m_nLineWidth=dlg.m_nLineWidth;//當(dāng)用戶(hù)選擇確定按鈕時(shí)將線(xiàn)寬值保存起來(lái)

        }

        CColorDialog dlg; //生成一個(gè)已有的顏色對(duì)話(huà)框的類(lèi)的對(duì)象

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

        if(IDOK==dlg.DoModal())

        {

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

        }

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

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

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

        4.5 繪圖工作

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

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

        圖3 效果圖

        5 結(jié)語(yǔ)

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

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

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

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

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

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

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

        猜你喜歡
        線(xiàn)寬教學(xué)系統(tǒng)界面設(shè)計(jì)
        《京燕兒》APP界面設(shè)計(jì)
        大眾文藝(2023年22期)2023-12-10 04:27:18
        中醫(yī)養(yǎng)生APP界面設(shè)計(jì)
        大眾文藝(2022年19期)2022-10-19 08:18:18
        印制板制造中量化蝕刻研究
        “共享員工”平臺(tái)界面設(shè)計(jì)
        包裝工程(2022年14期)2022-07-28 07:07:00
        生產(chǎn)過(guò)程中的PCB線(xiàn)寬分析研究
        基于Unity的計(jì)算機(jī)硬件組裝仿真教學(xué)系統(tǒng)設(shè)計(jì)
        面向智能手機(jī)的UI界面設(shè)計(jì)
        Excel圖形轉(zhuǎn)入CorelDRAW技巧
        多地遠(yuǎn)程互動(dòng)同步教學(xué)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
        基于交互式雙板教學(xué)系統(tǒng)的高中地理教學(xué)研究
        国内精品久久久久久中文字幕| 亚洲天堂男人的av天堂| 久久99精品综合国产女同| 色综合久久中文字幕综合网| 国产69精品久久久久777| 天天看片视频免费观看| 亚洲国产剧情在线精品视| 激情网色图区蜜桃av| 国产熟女露脸91麻豆| 男女做爰高清免费视频网站| 亚洲啪啪综合av一区| 青春草在线视频精品| 日韩av一区二区在线观看| 视频在线观看国产自拍| 国产乱码卡二卡三卡老狼| 人人玩人人添人人澡| 国产一区二区欧美丝袜| 女同另类一区二区三区| 91伦理片视频国产精品久久久| 国产精品免费_区二区三区观看| 欧美黑人疯狂性受xxxxx喷水| 91情侣在线精品国产免费| 人妻体体内射精一区中文字幕| 人妻诱惑中文字幕在线视频| 18禁真人抽搐一进一出在线| 亚洲欧洲精品成人久久曰不卡| 日本精品久久性大片日本| 人妻蜜桃日产一本久道综合在线| 免费观看mv大片高清| 国产白丝无码视频在线观看| 四虎国产精品免费久久麻豆| 精品日韩一区二区三区av| 无码爽视频| 图片区小说区激情区偷拍区| 伊人婷婷色香五月综合缴激情| 男女后入式在线观看视频| 国产美女主播视频一二三区| 99亚洲男女激情在线观看| 国产精品亚洲片夜色在线| 一区=区三区国产视频| 成人av片在线观看免费|