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

        ?

        基于MFC的繪畫板系統(tǒng)的研究

        2016-12-07 02:54:27李超
        電腦與電信 2016年7期
        關(guān)鍵詞:色板工具欄字體

        李超

        (鶴壁市機電信息工程學(xué)校,河南 鶴壁 458030)

        基于MFC的繪畫板系統(tǒng)的研究

        李超

        (鶴壁市機電信息工程學(xué)校,河南 鶴壁 458030)

        針對當(dāng)前繪畫板軟件的使用比較復(fù)雜的問題,本文針對初學(xué)者設(shè)計了繪畫板系統(tǒng)來滿足使用者的需求。首先對系統(tǒng)的功能和界面進行了分析,對系統(tǒng)開發(fā)的軟硬件環(huán)境進行了描述;其次對系統(tǒng)的部分模塊進行了詳細的分析。本文對軟件開發(fā)初學(xué)者和一線教學(xué)工作者都具有積極的意義。

        MFC;繪畫板;面向?qū)ο?/p>

        1 前言

        隨著信息技術(shù)的飛速發(fā)展,人們的工作和生活領(lǐng)域與信息技術(shù)的結(jié)合越來越緊密,計算機在很多領(lǐng)域上開始淘汰傳統(tǒng)的手工勞作方式,利用計算機進行繪畫制圖已經(jīng)成為一種時尚。繪圖板工具的普及為人們打開了一扇新的藝術(shù)大門,輔助人們更好地發(fā)揮藝術(shù)才能。繪圖最常用的軟件有金山畫王、我行我素、Photoshop和Painter等。雖然這些繪圖軟件功能強大,但是操作復(fù)雜,對于只需要對圖片做簡單編輯或者繪制簡單圖形的用戶來說,不可能花費大量的時間來通過學(xué)習(xí)完成對這些復(fù)雜軟件的操作。因此,根據(jù)實際情況,開發(fā)簡易繪畫板系統(tǒng),能夠滿足用戶的簡單需求。

        2 繪圖板系統(tǒng)分析

        2.1 功能介紹

        繪圖板系統(tǒng)的功能比較多,但結(jié)合當(dāng)前一般用戶的需求,主要有以下幾個功能:鉛筆、毛筆、縮放、噴槍、橡皮、畫刷、色板等。

        在繪制圖圖形時,主要利用鼠標進行操作,無論是畫線還是繪圖,采用先選中對應(yīng)的功能模塊,然后將鼠標移至繪圖區(qū)域,按下鼠標左鍵不放,同時按照所繪制圖形的軌跡移動鼠標。色板是根據(jù)RGB三原色的原理,在系統(tǒng)的界面上進行調(diào)色,得到相應(yīng)的顏色,并將其應(yīng)用在對應(yīng)的工具(畫筆、噴槍、繪圖及畫刷等)上,豐富圖形的色彩。其功能結(jié)構(gòu)如圖1所示:

        圖1 系統(tǒng)的功能結(jié)構(gòu)

        2.2 界面分析

        按照面向?qū)ο蟪绦蛟O(shè)計的思想,分析得出了系統(tǒng)所需的各種類,包括畫刷類、橢圓類、字體類、線形類、多邊形類、矩形類、直線類等,每一個類都存儲了用戶繪制圖形時所需存儲的信息。軟件的界面風(fēng)格力求簡潔、操作簡便、實用靈活的原則,每個功能模塊也就是主界面上的一個菜單項或者工具欄中的一項按鈕,這樣可以讓用戶感覺功能模塊比較清晰,使用起來比較方便。

        界面介紹:

        (1)縱向工具欄:用戶可以從中選擇繪圖工具;

        (2)橫向工具欄:用戶可以從中選擇選型,線寬,畫刷種類;

        (3)色板:用戶調(diào)色;

        (4)圖形繪制區(qū)域:用戶繪圖操作區(qū)。

        2.3 系統(tǒng)開發(fā)及運行環(huán)境

        (1)硬件環(huán)境

        CPU:1.3GHZ或者更高;內(nèi)存:256MB以上;24位色彩分辨率及以上。

        (2)軟件環(huán)境

        操作系統(tǒng):Windows 2000,Windows Xp或者更高;開發(fā)環(huán)境:VC++6.0。

        3 系統(tǒng)實現(xiàn)

        3.1 文字編輯功能模塊

        顯示文本要使用CDC類的成員函數(shù)Wordedit,函數(shù)參數(shù)為:

        BOOLWordedit(int x,int y,const CString zifu)

        其中,x是待編輯的文本在編輯區(qū)中的水平位置;y是對應(yīng)的垂直位置;zifu是待編輯的內(nèi)容。

        存儲字體的信息采用一個結(jié)構(gòu)體類型進行描述,在WINDOWS中,結(jié)構(gòu)體名為TextMETRIC,獲得字體的具體信息通過以下函數(shù):

        BOOL GetTextMetrics(LPTEXTMETRIC sjzt)

        其中,參數(shù)sjzt是用戶定義的結(jié)構(gòu)體類型TEXTMETRIC的指針。在調(diào)用繪圖函數(shù)的過程中利用GetTextMetrics函數(shù)得到字體的結(jié)構(gòu)體信息。

        另外,為了接收用戶輸入的字符,當(dāng)用戶按下非系統(tǒng)鍵時產(chǎn)生的消息,則會產(chǎn)生WM_CHAR消息,在消息結(jié)構(gòu)體tagMSG的成員wParam則保存了用戶所按鍵的ASCII碼。將獲取的鍵的ASCII碼存入對象數(shù)組,最后調(diào)用OnDraw()函數(shù)對獲取的文字信息作為一個圖片繪制到編輯區(qū)中,具體代碼如下:

        void CPaintView::OnFonts()

        {

        Draw_Style=DRAW_FONTS;國//用戶點擊了工具欄中的文字編輯按鈕

        }

        void CPaintView::OnChar(UINT nChar,UINT nRepCnt, UINT nFlags) //在畫板上寫字

        {

        if(Draw_Style==DRAW_FONTS)//文字編輯按鈕被選中

        {

        m_bFontSelect=true;

        //CFont font;

        CClientDC dc(this);

        TEXTMETRIC tm;//創(chuàng)建TEXTMETRIC結(jié)構(gòu)變量存儲字體信息

        dc.GetTextMetrics(&tm);//獲得字體信息

        Out_Fonts+=nChar;

        if(0x0d==nChar)//用戶敲擊回車鍵,0x0d為回車鍵的ASCII碼

        {

        CPaintDoc*pDoc=GetDocument(); CShape*pShape; pShape=new CFonts(m_ptFontDian, Out_Fonts);

        pDoc->AddShape(pShape);//添加到對象數(shù)組

        Out_Fonts.Empty();

        m_ptFontDian.y+=tm.tmHeight;

        }

        CSize sz=dc.GetTextExtent(Out_Fonts); CDian pt;

        pt.x=m_ptFontDian.x+sz.cx;

        pt.y=m_ptFontDian.y;

        SetCaretPos(pt);//設(shè)定光標位置

        dc.TextOut(m_ptFontDian.x,m_ptFontDian.y,

        Out_Fonts);//輸出文字

        CScrollView::OnChar(nChar,nRepCnt,nFlags);

        }

        }

        繪制文字函數(shù)的代碼:

        void CPaintView::DrawFonts(CDian dian)//繪制文字

        {

        CPaintDoc*pDoc=GetDocument();//獲取存儲的對象信息

        CShape*pShape;

        if(Draw_Style==DRAW_FONTS)

        {

        SetCaretPos(dian);//選擇光標位置

        m_ptFontDian=dian; ShowCaret(); //顯示光標

        }

        if(true==m_bFontSelect && Draw_Style! = DRAW_FONTS)

        {

        pShape=new CFonts(m_ptFontDian,Out_Fonts); pDoc->AddShape(pShape); Out_Fonts="";

        HideCaret(); //隱藏光標

        }

        3.2 調(diào)色板模塊

        作為調(diào)色的控件懸浮于用戶工作區(qū),通過創(chuàng)建CColor-Panel的對象m_pColorPanel,然后調(diào)用CcolorPanel的Create ()函數(shù)創(chuàng)建工具欄,用戶在色板區(qū)域通過滑動紅、綠、藍下的滑塊,根據(jù)需要調(diào)整畫筆的RGB,將調(diào)好顏色的畫筆載入設(shè)備描述環(huán)境,隨后便能夠用該顏色的畫筆進行繪圖了。

        class CColorPanel:public Cdialog//色板繼承類

        {

        public:

        CView*m_pView;

        CColorPanel(CView*pView);

        BOOL Create();//創(chuàng)建色板工具欄

        COLORREF clrButn;

        ...........

        }

        創(chuàng)建色板工具欄:

        m_pColorPanel->Create();//其 中 m_pColorPanel 為CcolorPanel類的對象

        3.3 放大縮小功能設(shè)計

        在VC6.0利用MFC進行系統(tǒng)設(shè)計,其中設(shè)備環(huán)境CDC中有兩個成員函數(shù)StretchBlt()和BitBlt(),可以通過改變函數(shù)的參數(shù)值來實現(xiàn)當(dāng)前視圖的縮放范圍,進而對位圖進行放大或縮小顯示,其核心代碼如下所示:

        CDC*tpzj=GetDC(); CRect jxkh;

        GetClientRect(&jxkh);

        if(Draw_Style==HTQYIN)

        tpzj->StretchBlt(- dian.x/len,- dian.y/len,jxkh.right*len, jxkh.bottom*len,tpzj,0,0,jxkh.right,jxkh.bottom,SRCCOPY);

        //對選中的圖片進行放大操作

        if(Draw_Style==HTQYOUT)

        tpzj->StretchBlt(- dian.x/len,- dian.y/len,jxkh.right/len, jxkh.bottom/len,tpzj,0,0,jxkh.right,jxkh.bottom,SRCCOPY);

        /對選中的圖片進行縮小操作

        4 結(jié)語

        本文針對簡易的繪圖板系統(tǒng)進行研究,當(dāng)前社會上畫圖工具種類比較多,但是大部分使用起來需要專門的學(xué)習(xí)或培訓(xùn),極大地限制了使用者的積極性。簡易的繪圖板系統(tǒng)無需專門的培訓(xùn)即可進行操作。本文由于篇幅所限,只對關(guān)鍵部分的實現(xiàn)進行了分析,希望為軟件開發(fā)初學(xué)者和教學(xué)工作者提供一些參考。

        [1]David J.Kruglinski etc(希望圖書創(chuàng)作室).Visual C++6.0技術(shù)內(nèi)幕[M].北京:北京希望電子出版社,1999.

        [2]李烜,周家紀.設(shè)備場景(DC)在Windows GD I中的應(yīng)用[J].物探化探計算技術(shù),1998,20(1):76.

        [3]Eugene Olafsen,Kenn Scribner,K.DavidWhite,et al.MFC Visual C++6編程技術(shù)內(nèi)幕(王建華,陳一飛,張煥生等譯)[M].北京:機械工業(yè)出版社,2000.

        [4]孫永強,陸波,楊麗昆.Framework程序設(shè)計[M].北京:清華大學(xué)出版社,2001.

        [5]郭中華,連億東,伍馮潔,等.基于嵌入式的人臉圖像采集顯示系統(tǒng)的制作[J].電腦與電信,2015(7):32-34.

        Research on the Drawing Board System Based on MFC

        Li Chao
        (Hebi Mechanical and Electrical Information Engineering School,Hebi 458030,Henan)

        In view of the complex problems in the current drawing board software,this paper designs a drawing board system for beginners.At first,the function and the interface of the system are analyzed,and the software and hardware environment of the system is described.Then,some modules of the system are analyzed in detail.This article has the positive significance to the software development beginners and the first teaching staff.

        MFC;drawing board;object-oriented

        TP391.41

        A

        1008-6609(2016)07-0092-03

        李超,男,河南信陽人,本科,講師,研究方向:計算機科學(xué)與技術(shù)。

        猜你喜歡
        色板工具欄字體
        科思創(chuàng)為《勞爾顏色趨勢體驗2021+》提供聚碳酸酯流行色色板
        上海建材(2021年1期)2021-11-22 08:01:44
        “玩轉(zhuǎn)”西沃白板
        攝影
        江淮法治(2020年3期)2020-05-08 08:53:26
        字體的產(chǎn)生
        貝貝和五顏六色
        人性的色板
        愛你(2015年4期)2015-11-15 04:09:37
        組合字體
        設(shè)計一種帶工具欄和留言功能的記事本
        字體安裝步步通
        移動一族(2009年3期)2009-05-12 03:14:30
        以最快的速度為填空題留空
        移動一族(2009年3期)2009-05-12 03:14:30
        亚州终合人妖一区二区三区| 色狠狠一区二区三区香蕉蜜桃| 国产成人精品人人做人人爽| 在线看亚洲一区二区三区| 中文字幕视频一区二区| 久久精品熟女亚洲av麻| 爽爽精品dvd蜜桃成熟时电影院 | 国产一区二区三区av天堂| 少妇私密会所按摩到高潮呻吟| 一二三四视频社区在线| 久久99国产亚洲高清| 亚洲一区二区三区最新视频| 欧美拍拍视频免费大全| 国产成人av片在线观看| 色综合久久加勒比高清88| 精品中文字幕久久久人妻| 国产成人无码av一区二区在线观看| 天天躁狠狠躁狠狠躁夜夜躁| 一区二区三区不卡在线| 蜜桃视频一区视频二区| 国产精品国产三级国产av品爱网| 永久免费的av在线电影网无码 | 久久精品视频在线看99| 国内精品久久久久影院蜜芽| 久久精品国产熟女亚洲av麻豆 | 日韩av无码中文字幕| 精品国产一区二区三区av 性色| 精品久久久久88久久久| 黄色精品一区二区三区| 婷婷色香五月综合激激情| 亚洲日本三级| 国产一级一厂片内射视频播放| а天堂中文地址在线| 一二三四在线视频观看社区| 国产午夜在线观看视频播放| 少妇人妻出水中文字幕乱码| 亚洲 小说区 图片区 都市| 国产全肉乱妇杂乱视频| 国产精品亚洲A∨无码遮挡| 国产草逼视频免费观看| 乱人伦人妻中文字幕无码|