摘 要:對(duì)于初步接觸應(yīng)用程序開發(fā)的學(xué)生而言,開發(fā)Windows應(yīng)用程序思維方式相對(duì)而言是比較抽象的,因而如何開解生動(dòng)的讓學(xué)生理解Windows API函數(shù)的調(diào)用原理,提高其應(yīng)用技能一直是Windows程序設(shè)計(jì)課程教學(xué)的重點(diǎn)和難點(diǎn)。本文試圖以繪圖工具使用的普遍性和共同規(guī)律性為例,講解Windows API函數(shù)調(diào)用的格式、參數(shù)意義和調(diào)用關(guān)系,以期提高同學(xué)們Windows程序設(shè)計(jì)和應(yīng)用開發(fā)能力。
關(guān)鍵詞:API函數(shù) 程序設(shè)計(jì) 教學(xué)法
Windows程序設(shè)計(jì)課程是計(jì)算機(jī)專業(yè)的基礎(chǔ)應(yīng)用實(shí)踐課,主要目的是培養(yǎng)學(xué)生利用Visual Studio開發(fā)工具開發(fā)基于Windows操作系統(tǒng)的應(yīng)用軟件,要求學(xué)生掌握初步的工程實(shí)踐設(shè)計(jì)與開發(fā)能力。由于該課程將涉及大量的Windows API函數(shù)調(diào)用,函數(shù)格式及各數(shù)據(jù)結(jié)構(gòu)對(duì)初學(xué)者而言具有重大的挑戰(zhàn)性,因而學(xué)生普遍反映學(xué)習(xí)比較困難。簽此,本文試圖以繪圖工具教學(xué)為例找出Windows API函數(shù)應(yīng)用的規(guī)律及關(guān)聯(lián)性,讓學(xué)生明白程序設(shè)計(jì)的邏輯性,希能為提高Windows 程序設(shè)計(jì)教學(xué)質(zhì)量提供一種實(shí)踐方法。
一、繪圖工具
Windows 繪圖工具畫筆用來繪制直線、曲線和勾勒繪圖對(duì)象的形狀輪廓,而畫刷則用于繪圖對(duì)象實(shí)心形狀或者說填充指定區(qū)域。利用Windows API函數(shù)繪制任何圖形都必須設(shè)置好這種兩種工具,因而準(zhǔn)確高效利用畫筆和畫刷工具是Windows GDI繪圖的基礎(chǔ)。實(shí)際上畫筆、畫刷與Windows程序設(shè)計(jì)中具他工具使用都有其共同的規(guī)律,學(xué)生如果能有效掌握畫筆與畫刷的使用,對(duì)提高Windows應(yīng)用程序教學(xué)質(zhì)量和學(xué)生利用Windows平臺(tái)開發(fā)應(yīng)用程序能力具有重要的意義。
二、Windows 畫筆畫刷教學(xué)
繪圖工具畫筆與畫刷在Windows程序設(shè)計(jì)中調(diào)用都遵循共同規(guī)律:創(chuàng)建工具,將工具選入設(shè)備環(huán)境和刪除工具。因而教學(xué)過程中始終以此為主線,重點(diǎn)引入學(xué)生編程習(xí)慣的養(yǎng)成。本文首先以畫筆的教學(xué)為主要對(duì)象,教學(xué)過程中兼顧共同規(guī)律的講述。
創(chuàng)建畫筆首先要定義畫筆句柄,由于Windows句柄相對(duì)比較多,學(xué)生對(duì)于以前所學(xué)的句柄知識(shí)不一定全部還記得,因而我們對(duì)句柄做了一個(gè)簡(jiǎn)要的復(fù)習(xí),主要要求同學(xué)們講出HWND、HDC、HINSTANCE等句柄的主要作用。然后本文給出畫筆句柄的定義,如:HPEN hPen; 要求學(xué)生掌握畫筆句柄是畫筆調(diào)用的重要標(biāo)識(shí)。其次,本文還要求學(xué)生理解句柄與C++語言的int、float、double數(shù)據(jù)類型的區(qū)別與聯(lián)系。有了畫筆句柄后,就是如何創(chuàng)建畫筆,教學(xué)應(yīng)總結(jié)兩種畫筆創(chuàng)建方式:調(diào)用系統(tǒng)畫筆和自定義畫筆。調(diào)用系統(tǒng)畫筆使用Widows API函數(shù)GetStockObject,其調(diào)用實(shí)例如:hPen=(HPEN)GetStockObject(BLACK_PEN),其中參數(shù)為系統(tǒng)定義好的類型,主要有WHITE_PEN、BLACK_PEN、DC_PEN和NULL_PEN。自定義畫筆主要利用函數(shù)CreatePen,教學(xué)過程中主要在畫筆樣式的理解,本文通過實(shí)際程序運(yùn)行實(shí)例演示讓同學(xué)們生動(dòng)開解理解其內(nèi)涵。對(duì)于畫筆顏色參數(shù)我們主要應(yīng)用RGB宏定義,為了讓學(xué)生們理解此顏色參使用,以中學(xué)繪畫課程中的三原色來形象講解其原理。畫筆應(yīng)用的第二步是利用SelectObject函數(shù)將畫筆選入設(shè)備環(huán)境,如 hPenOld=SelectObject(hDC,hPen),其中特別要強(qiáng)調(diào)設(shè)備環(huán)境hDC,畫筆句柄hPen的含義。最后,講解如何刪除當(dāng)前畫筆,兩種形式:用舊畫筆代替原有畫筆如SelectObject(hDC, hPenOld),另一種形式是利用Windows API函數(shù)DeleteObject刪除畫筆。
畫刷使用和畫筆一樣,同樣分三步:創(chuàng)建畫刷,將畫刷選入設(shè)備環(huán)境和刪除畫刷。畫刷須先申明其句柄HBRUSH hBrush,然后才能調(diào)用GetStockObject和CreateSolidBrush、CreateHatchBrush來創(chuàng)建畫刷。對(duì)于系統(tǒng)自定義畫刷主要有BLACK_BRUSH黑色畫刷、DKGRAY_BRUSH深灰色畫刷、GRAY_BRUSH灰色畫刷、HOLLOW_BRUSH 虛畫刷、LTGRAY_BRUSH亮灰色畫刷、NULL_BRUSH空畫刷和WHITE_BRUSH白色畫刷。如要自定義具有指定顏色的單色畫刷須使用CreateSolidBrush;如果圖形需要陰影圖案和有顏色的畫刷則要調(diào)用函數(shù)CreateHatchBrush。為了有效讓同學(xué)們理解畫刷樣式一繪圖結(jié)果間的關(guān)系,我們也實(shí)際運(yùn)行了簡(jiǎn)單的圖形,以理解不同樣式參數(shù)下圖形效果。最后將畫刷選入設(shè)備環(huán)境和刪除畫刷與畫筆應(yīng)用基本一致,主要要求同學(xué)們掌握其應(yīng)用的共同特征,對(duì)程序設(shè)計(jì)中的其他類似問題能舉一反三。
結(jié)語
Windows程序設(shè)計(jì)課程涉及大量Windows API函數(shù)調(diào)度,且函數(shù)格式和數(shù)據(jù)結(jié)構(gòu)格式對(duì)初學(xué)者而言都具有重大的挑戰(zhàn)性,因而學(xué)習(xí)效果一直不佳。本文針對(duì)此問題,以繪圖工具畫筆與畫刷教學(xué)為例,探討其應(yīng)用過程及共同規(guī)律性,以提高本課程的實(shí)際教學(xué)效果。
參考文獻(xiàn)
[1]張?jiān)?課程單元教學(xué)設(shè)計(jì)中的案例設(shè)計(jì)——以windows程序設(shè)計(jì)及實(shí)訓(xùn)課程教學(xué)為例[J].南京廣播電視大學(xué)學(xué)報(bào),2015(4):41-42.
[2]陳健.windows應(yīng)用程序開發(fā)中若干重要api函數(shù)的調(diào)用[J].吉林師范大學(xué)學(xué)報(bào):自然科學(xué)版,2003(1):86-88.
作者簡(jiǎn)介
唐小勇(1973.03—),男,漢族,湖南洞口人,副教授,博士,現(xiàn)就職于湖南農(nóng)業(yè)大學(xué)信息科學(xué)技術(shù)學(xué)院,主要研究方向:計(jì)算機(jī)教學(xué)法、高性能計(jì)算。