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

淺談Windows程序設計

2016-10-24 05:03:37廣東東軟學院高群霞
電子世界 2016年18期
關鍵詞:程序資源

廣東東軟學院 高群霞

淺談Windows程序設計

廣東東軟學院高群霞

Windows編程是開發Windows軟件、一些桌面應用及游戲的堅實基礎,其以友好的圖形用戶界面和多任務特點備受程序員熱愛。文章概述了Windows程序設計的特點和運行機制,介紹了Windows程序開發的兩種主流方法——Win32 API應用程序和MFC應用程序的框架和實現方法,論述了兩種方法的特點和應用范圍。

Windows編程;Win32;API接口;MFC框架

0 引言

Windows編程是開發Windows軟件、一些桌面應用及游戲的基礎,相比傳統的Dos系統,Windows系統以圖形化界面和多線程等優點備受軟件開發者們熱愛。

本文先闡述了Windows程序設計的一些概念,介紹了Windows程序的運行機制和實現方法,然后介紹了Win32 API(Application Programming Interface)編程方法和MFC(Microsoft Foundation Classes)編程方法,最后并比較了兩種Windows編程方法的特點和應用范圍。

1 windows程序設計概述

Windows編程是一種基于圖形用戶界面的多任務、多線程編程技術,其實現主要有兩種方法:傳統的Win32 API應用程序方法和交互式的MFC應用程序設計方法[1]。

Windows程序是基于消息的事件驅動程序,重點是編寫事件和消息的處理程序[2]。Windows程序的運行機制如圖1所示。程序開始執行時,先定義并初始化一些全局變量,然后進入入口函數WinMain(),在WinMain函數里完成窗口類的定義和注冊、創建和顯示窗口,并生成消息循環,等待消息隊列傳來消息。當有消息傳來時,先檢測是否為退出消息,如果是,則退出循環,結束程序,如果不是,則判斷消息類型,調用相應的窗口處理函數WndProc()進行處理,處理完后又回到循環,繼續檢測消息。

圖1 Windows程序運行機制

2 Win32 API應用程序設計

2.1API接口簡介

API是Windows操作系統和Windows應用程序之間的標準接口[3]。Win32應用程序采用API接口函數來編寫,是一種基于底層的開發模式。

Win32 API程序設計的一般方法是先利用VC++中的Win32應用程序向導生成一個簡單的應用程序框架,然后對框架程序中的窗口函數進行修改,并根據需要添加一些頭文件、源程序文件及資源文件。

2.2Win32應用程序框架結構

一個典型的Win32應用程序一般由頭文件(后綴名為.h)、源文件(后綴名為.c或.cpp)和資源文件(后綴名為.rc)組成。一般一個項目有一個資源文件,資源文件被創建后會自動生成與之對應的頭文件Reseouce.h,并預定義每個控件的值。用戶可以在資源視圖中創建自己想要的資源,如對話框、圖標、菜單等,創建好后會自動生成后綴名為.rc的資源文件和Reseouce.h頭文件。

同Windows程序的基本結構一樣,Win32應用程序一般由入口函數WinMain()和消息響應函數WinProc()兩大部分組成。其中,WinMain()函數是程序的入口函數,實現的功能有:設計窗口類、注冊窗口類、創建窗口、顯示及更新窗口、創建消息循環。WndProc()函數是消息響應函數,負責對接收到的窗口消息進行處理,WndProc()函數一般有一個或多個Switch語句組成,每條case語句對應一種消息處理。

3 MFC應用程序設計

3.1MFC簡介

MFC以C++類的形式對API函數進行了封裝,并且包含一個應用程序框架,簡化了Windows程序設計的難度,減少開發人員的工作量[4]。MFC項目的開發過程一般可分為:創建工程、可視化設計(添加資源和設計圖形用戶界面)、編寫程序代碼(添加消息響應函數,編寫實現算法)。

MFC應用程序執行過程如圖2所示,通過WinMain函數進入AfxWinMain函數,然后初始化線程,調用InitInstance初始化窗口,調用Run函數進入消息循環,等待消息傳來。若有消息傳來,先判斷是否為退出消息,如果是退出消息,則結束進程,如果不是,則分配到對應的消息處理函數處理,處理完后返回循環繼續檢測消息。

圖2 MFC應用程序執行過程

3.2MFC應用程序框架結構

利用MFC向導創建一個基于單文檔視圖的MFC標準應用程序,程序包含頭文件、源文件和資源文件,可通過解決方案管理器查看項目文檔結構,通過資源視圖查看和編輯資源,通過類視圖查看類。

一個最基本的單文檔視圖的MFC程序,包含C**App(應用類)、C**Doc(文檔類)、CMainFrame(主框架類)、和CAboutDlg(關于對話框類)五個類。每個類都對應頭文件(**.h文件)和源文件(**.cpp文件)兩個文件,頭文件中定義了類的各種變量、函數原形,源文件中完成類的實現。

(1)C**App應用類派生于MFC的CWinApp類,作用是初始化應用程序及運行該程序的所需的成員函數。該類中封裝了程序的主入口WinMain()函數,WinMain函數調用CWinApp的InitInstrance函數,在這里一個CMainFrame的對象被創建,文檔模板被創建,主窗口通過ShowWindow(SW_SHOW)被顯示出來。

(2)CMainFrame框架類派生于MFC的CFrameWnd類,負責管理應用程序的菜單、工具欄、狀態欄等,同時處理針對窗口操作的信息。該類中包含PreCreateWindow()和OnCreate()兩個函數,m_ wndStatusBar(管理狀態欄)和m_wndToolBar(管理工具欄)兩個對象。

(3)C**Doc文檔類派生于MFC的CDocument類,作用是存放應用程序的數據以及文件的保存加載功能。該類中包含三個函數:OnNewDocument()(用于初始化文檔)、Serialize()(串行化函數,用于保存和裝入文檔)、Dump()(用于調試和診斷)。文檔類需通過視圖類來實現與用戶的交互。

(4)C**View視圖類派生于MFC的CView類,負責管理視圖窗口,實現用戶數據的顯示和打印。該類中OnDraw()函數可實現視圖數據的顯示和刷新。

(5)CAboutDlg關于對話框類定義了ABOUT對話框。前四個都是在程序主窗口出現之前被創建的,CAboutDlg是在“關于”對話框彈出時被創建的。

資源文件中包含項目中會使用到的所有資源,其中**.rc文件是可以直接在 VC++ 中進行編輯的所有資源的列表。**.rc2文件包含不在VC++中進行編輯的資源,一般將不可由資源編輯器編輯的所有資源放在此文件中。**.ico文件這是應用程序中使用到的圖標文件。**.Bmp文件是項目中使用到的位圖文件。用戶可根據需要,在創建好的框架中添加自己的對話框和相應的消息處理函數。

4 結語

Windows編程可以極大地方便程序開發用戶界面的工作,并使程序的結構合理、模塊化程序高。Win32 API和MFC編程方法是Windows程序設計的兩種方法。Win32 API直接調用Windows系統函數,是一種基于底層的編程方式,編程得到的代碼干凈、效率高、擴展性強,是其它所有方式實現的基礎。MFC是對win32的封裝,同時還供了建立Windows應用程序的框架結構,簡化了Windows程序設計的難度,是一種交互式開發方法。由于是封裝,所以MFC不可能完全實現Win32所有功能,在個性、特殊化方面還有差距。

兩者相比,win32更本質,MFC更抽像。實際編程中,應根據具體情況和任務恰當選擇實現方法,有助于提高效率。

[1]Jeffrey Richter(美).黃隴,李虎譯.Windows核心編程[M].機械工業出版社,2008,5.

[2]Charles Petzold(美).方敏,張勝梁,路平等譯.Windows程序設計[M].清華大學出版社,2010,9.

[3]范文慶,周彬彬,安靖.精通Windows API:函數、接口、編程實例[M].人民郵電出版社,2009,2.

[4]車忠志,孫雪雁.MFC應用程序基本框架分析[J].農業網絡信息,2010,9.

高群霞(1987—),四川成都人,碩士,講師,主要研究方向:計算機科學與技術,網站開發。

猜你喜歡
程序資源
讓有限的“資源”更有效
基礎教育資源展示
一樣的資源,不一樣的收獲
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
資源回收
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
資源再生 歡迎訂閱
資源再生(2017年3期)2017-06-01 12:20:59
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
主站蜘蛛池模板: 精品国产免费人成在线观看| 亚洲制服丝袜第一页| 欧美性猛交xxxx乱大交极品| 久久熟女AV| 欧美国产视频| 久久精品无码中文字幕| 久久亚洲国产最新网站| 啦啦啦网站在线观看a毛片| 波多野结衣无码AV在线| 九色在线视频导航91| 国产精品区视频中文字幕| 99热这里只有精品国产99| 欧美日韩一区二区在线播放| 国产白浆一区二区三区视频在线| 欧美色视频网站| 亚洲综合精品香蕉久久网| 国产精品无码在线看| 亚洲国产精品日韩av专区| 91精品国产综合久久不国产大片| 91精品视频在线播放| 一区二区理伦视频| 亚洲一区二区视频在线观看| 国产后式a一视频| 欧美天堂久久| 国模沟沟一区二区三区| 蜜桃臀无码内射一区二区三区| 国产第四页| 99热这里只有精品免费国产| 国产精品理论片| 在线观看视频99| 国产人成网线在线播放va| 亚洲国产综合精品一区| 久久免费精品琪琪| 久夜色精品国产噜噜| 白浆免费视频国产精品视频| 色婷婷综合激情视频免费看| 国产麻豆va精品视频| 99伊人精品| 久久久久青草线综合超碰| 国产成人精品第一区二区| 奇米影视狠狠精品7777| aⅴ免费在线观看| 久久久久夜色精品波多野结衣| 91精品专区| 亚洲精品成人福利在线电影| 九九热视频在线免费观看| 超碰色了色| 最新国产网站| 亚洲欧洲日本在线| 女人18毛片久久| a天堂视频| 精品国产成人三级在线观看| 久久人体视频| 中文字幕色在线| 网久久综合| 国产真实乱子伦精品视手机观看| 国产理论最新国产精品视频| 日韩精品一区二区三区免费在线观看| 露脸真实国语乱在线观看| 国产精品亚欧美一区二区三区 | 久久亚洲黄色视频| 久久精品欧美一区二区| 成人精品在线观看| 人妻精品久久无码区| 欧美激情成人网| 亚洲最大综合网| 宅男噜噜噜66国产在线观看| 国产乱人伦偷精品视频AAA| 久久96热在精品国产高清| 91精品国产情侣高潮露脸| 亚洲天堂网在线观看视频| 中文字幕在线一区二区在线| 18禁影院亚洲专区| 成人一级免费视频| 成人国产精品一级毛片天堂| 亚洲黄网在线| 午夜精品久久久久久久无码软件| 四虎成人免费毛片| 亚洲天堂色色人体| 一区二区午夜| 欧美19综合中文字幕| 日韩大乳视频中文字幕|