windows應用程式架構及執行個體

來源:互聯網
上載者:User

標籤:log   style   結束   over   instance   dos   case   windows   gets   

應用程式架構:
同一類型應用程式的結構大致相同,並有很多相同的原始碼,
因此可以通過一個應用程式架構AFX(Application FrameWorks)
編寫同一類型應用程式的通用原始碼。

主要嚮導:
Datebase Project:建立資料庫專案

MFC ActiveX Control Wizard:建立基於MFC的ActiveX控制項

MFC AppWizard[dll]:建立基於MFC的動態連結程式庫

MFC AppWizard[exe]:建立基於MFC的應用程式(最常用)

New Database Wizard:在SQL伺服器上建立一個SQL Server資料庫

Win32 Application:建立Win32應用程式,可不使用MFC,採用SDK方法編程

Win32 Console Application:建立DOS下的Win32控制台應用程式,
採用C++或C語言進行編程

Win32 Dynamic-link Library:建立Win32動態連結程式庫,採用SDK方法

Win32 Static Library:建立Win32靜態連結庫,採用SDK方法


引入應用程式嚮導的目的:為了避免程式員重複編寫代碼。

區別於DOS程式,即使一個簡單的Windows程式:
它也必須顯示一個程式運行視窗,需要編寫複雜的程式碼。
而同一類型應用程式的架構視窗風格是相同的,如相同的功能表列、工具列、
狀態列和使用者區。
基本功能表命令的功能也是一樣的,如相同的檔案操作和編輯命令。

編寫一個實現具體功能的MFC應用程式的步驟:

★根據應用程式特性在MFC AppWizard[exe]應用程式嚮導各步驟對話方塊中進行選擇,
建立一個應用程式的架構。

★利用資源編輯器為程式編輯或添加資源,如編輯菜單、添加對話方塊等。

★利用ClassWizard類嚮導或手工添加類、成員變數和成員函數的聲明。

★根據需要編寫具體的函數代碼。

★編譯、連結程式。如果程式有語法錯誤,需要修改來源程式。直到沒有編譯、連結錯誤,
才能得到可執行程式。

★測試應用程式各項功能,如果程式沒有實現程式設計所要求的功能,啟動Debug調試器
進行調試,找出並修改程式設計中的邏輯錯誤。

我們可以為Visual C++ MFC編程作一個形象的總結:

◇MFC應用程式架構使我們的程式設計工作猶如做填充題。

◇Developer Studio中的整合工具使我們的程式設計工作猶如做選擇題,
程式員猶如軟體整合裝配車間裡的技術工人。

Visual C++中通用的檔案類型
尾碼類型說明
dsw工作區檔案將項目的詳細情況組合到工作區中
dsp專案檔儲存項目的詳細情況並替代mak檔案
hC++標頭檔儲存類的定義代碼
cppC++源檔案儲存體類的成員函數的實現代碼
rc資源指令檔儲存菜單、工具列和對話方塊等資源
rc2資源檔用來將資源套件含到項目中
ico表徵圖檔案儲存體應用程式圖示
bmp位元影像檔案儲存體位元影像
clw類嚮導檔案儲存體ClassWizard類嚮導使用的類資訊

MFC中資源標識符首碼
標識符首碼說明
IDR_主菜單、工具列、應用程式圖
標和快速鍵表
IDD_對話方塊
IDC_控制項和游標
IDS_字串
IDP_提示資訊對話方塊的字串
ID_功能表命令項
應用程式舉例:
例1:建立應用程式架構。
本例的目的在於說明建立Windows應用程式的方法及過程

 1 //包含應用程式所需的資料類型和資料結構的定義 2 #include <windows.h> 3  4 LRESULT    CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);//視窗函數說明 5  6 //----------------------以下初始化視窗類別------------------------- 7 int WINAPI WinMain 8 ( 9 HINSTANCE hInstance,10 HINSTANCE hPrevInst,11 LPSTR lpszCmdLine,12 int nCmdShow13 )14 {15 HWND hw16 nd;17 MSG Msg;18 WNDCLASS wndclass;19 char lpszClassName[] = "視窗";    //視窗類別名20 char lpszTitle[] = "My_windows";    //視窗標題名21 22 //------------------視窗類別的定義---------------------------23 wndclass.style=0;    //視窗類別型為預設類型24 wndclass.lpfnWndProc=WndProc;    //定義視窗處理函數25 wndclass.cbClsExtra=0;    //視窗類別無擴充26 wndclass.cbWndExtra=0;    //視窗執行個體無擴充27 wndclass.hInstance=hInstance;    //當前執行個體控制代碼28 wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);29 //視窗的最小化表徵圖為預設表徵圖30 wndclass.hCursor=LoadCursor(NULL,IDC_ARROW) ;31 //視窗採用箭頭游標32 wndclass.hbrBackground=GetStockObject(WHITE_BRUSH);33 //視窗背景為白色34 wndclass.lpszMenuName=NULL;    //視窗中無菜單35 wndclass.lpszClassName=lpszClassName ;    //視窗類別名為"視窗"36 37 //------------------以下進行視窗類別的註冊------------38 if(!RegisterClass(&wndclass))//如果註冊失敗則發出警告39 {40 MessgaeBeep(0);41 return FALSE;42 }43 //--------------------建立視窗-------------------------44 hwnd = CreateWindow45 (46 lpszClassName,    //視窗類別名47 lpszTitle,    //視窗執行個體的標題名48 WS_OVERLAPPEDWINDOW,    //視窗的風格49 CW_USEDEFAULT,50 CW_USEDEFAULT,    //視窗左上方座標為預設值51 CW_USEDEFAULT,52 CW_USEDEFAULT,    //視窗的高和寬為預設值53 NULL,    //此視窗無父視窗54 NULL,    //此視窗無主菜單55 hInstance,    //建立此視窗的應用程式的當前控制代碼56 NULL //不使用該值57 58 );59 //------------------------顯示視窗-----------------------60 ShowWindow(hwnd,nCmdShow);61 62 //------------------------繪製使用者區---------------------63 UpdateWindow(hwnd);    64 //------------------------訊息迴圈-----------------------65 while(GetMessage(&Msg,NULL,0,0))66 {67 TranslateMessage(&Msg);68 DispatchMessage(&Msg);69 }70 71 //訊息迴圈結束即程式終止時將訊息返回作業系統72 return Msg.wParam;73 }74 75 //---------------------------------視窗函數--------------------76 LRESULT CALLBACK WndProc77 (    HWND hwnd,78 UINT message,79 WPARAM wParam,80 LPARAM lParam81 )82 83 { 84 switch(message)85 { 86 case WM_DESTROY:87 PostQuitMessage(0);//調用PostQuitMessage發出VM_QUIT訊息88 default:    //預設時採用系統訊息預設處理函數89 return DefWindowProc(hwnd,message,wParam,lParam);90 }91 return(0);92 }

 

windows應用程式架構及執行個體

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.