日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

windows应用程序框架及实例

發布時間:2025/3/12 windows 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 windows应用程序框架及实例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

應用程序框架:
同一類型應用程序的結構大致相同,并有很多相同的源代碼,
因此可以通過一個應用程序框架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文件
h C++頭文件 存儲類的定義代碼
cpp C++源文件 存儲類的成員函數的實現代碼
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 WinMain8 (9 HINSTANCE hInstance, 10 HINSTANCE hPrevInst, 11 LPSTR lpszCmdLine, 12 int nCmdShow 13 ) 14 { 15 HWND hw 16 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 = CreateWindow 45 ( 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 WndProc 77 ( HWND hwnd, 78 UINT message, 79 WPARAM wParam, 80 LPARAM lParam 81 ) 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应用程序框架及实例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。