LẬP TRÌNH WINDOWS - Generic App
Chia sẻ: ™——† Lvlr. DK †——™ »»» V.I.P ««« | Ngày: | Loại File: PDF | Số trang:6
lượt xem 18
download
Tham khảo tài liệu 'lập trình windows - generic app', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: LẬP TRÌNH WINDOWS - Generic App
- // ---------------------------------------------------------------------- Ch ương trình demo: Application đơn giản trên Windows // S ử dụng thư viện API của Windows // // GENERIC_APP.CPP Nguyen Tri Tuan - Khoa CNTT – ĐH.KHTN Tp.HCM // // ---------------------------------------------------------------------- #include "stdafx.h" #include "resource.h" #define MAX_LOADSTRING 100 // Các biến toàn cục // instance c ủa application HINSTANCE hInst; // Tiêu đề của cửa sổ TCHAR szTitle[MAX_LOADSTRING]; // Tên lớp cửa sổ (window class name) TCHAR szWindowClass[MAX_LOADSTRING]; // Prototype c ủa các hàm xử lý ATOM MyRegisterClass(HINSTANCE hInstance); BOOL InitInstance(HINSTANCE, int); LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); LRESULT CALLBACK About(HWND, UINT, WPARAM, LPARAM); // Hàm xử lý chính của application int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { // Khởi tạo các biến chuỗi toàn cục LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING); LoadString(hInstance, IDC_C, szWindowClass, MAX_LOADSTRING); // Đăng ký lớp cửa sổ cho ứng dụng MyRegisterClass(hInstance); // Khởi tạo ứng dụng if (!InitInstance (hInstance, nCmdShow)) { return FALSE; } // Khởi tạo bảng phím tắt (cho các menu item) MSG msg; HACCEL hAccelTable; hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_C); // Vòng lặp tiếp nhận và xử lý thông điệp while (GetMessage(&msg, NULL, 0, 0)) { if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) { TranslateMessage(&msg); DispatchMessage(&msg); } } return msg.wParam; } // --------------------------------------------------------------------- // Hàm: MyRegisterClass() Đăng ký lớp cho cửa sổ chính (Frame window) // // --------------------------------------------------------------------- ATOM MyRegisterClass(HINSTANCE hInstance) { WNDCLASSEX wcex; Nguyen Tri Tuan – Khoa CNTT – DHKHTN Tp.HCM 1/6
- wcex.cbSize = sizeof(WNDCLASSEX); wcex.style = CS_HREDRAW | CS_VREDRAW; wcex.lpfnWndProc = (WNDPROC)WndProc; wcex.cbClsExtra = 0; wcex.cbWndExtra = 0; wcex.hInstance = hInstance; wcex.hIcon = LoadIcon(hInstance, (LPCTSTR)IDI_C); wcex.hCursor = LoadCursor(NULL, IDC_ARROW); wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); wcex.lpszMenuName = (LPCSTR)IDC_C; wcex.lpszClassName = szWindowClass; wcex.hIconSm = LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL); return RegisterClassEx(&wcex); } // --------------------------------------------------------------------- // Hàm: InitInstance(HANDLE, int) Khởi tạo cửa sổ giao diện chính cho ứng dụng // // --------------------------------------------------------------------- BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) { HWND hWnd; hInst = hInstance; // Store instance handle in our global variable hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL); if (!hWnd) { return FALSE; } ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd); return TRUE; } // --------------------------------------------------------------------- // Hàm: WndProc(HWND, unsigned, WORD, LONG) Hàm nhận và xử lý thông điệp cho cửa sổ giao diện chính // // --------------------------------------------------------------------- LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { int wmId, wmEvent; PAINTSTRUCT ps; HDC hdc; TCHAR szHello[MAX_LOADSTRING]; LoadString(hInst, IDS_HELLO, szHello, MAX_LOADSTRING); switch (message) { case WM_COMMAND: wmId = LOWORD(wParam); wmEvent = HIWORD(wParam); // Kiểm tra xem user ch ọn menu item nào: switch (wmId) { case IDM_ABOUT: DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About); break; case IDM_EXIT: Nguyen Tri Tuan – Khoa CNTT – DHKHTN Tp.HCM 2/6
- DestroyWindow(hWnd); break; default: return DefWindowProc(hWnd, message, wParam, lParam); } break; case WM_PAINT: hdc = BeginPaint(hWnd, &ps); // Cập nhật lại nội dung màn hình client RECT rt; GetClientRect(hWnd, &rt); DrawText(hdc, szHello, strlen(szHello), &rt, DT_CENTER); EndPaint(hWnd, &ps); break; case WM_DESTROY: // Kết thúc ứng dụng PostQuitMessage(0); break; default: // Gọi xử lý thông điệp mặc định return DefWindowProc(hWnd, message, wParam, lParam); } return 0; } // --------------------------------------------------------------------- // Hàm: About(HWND, UINT, WPARAM, LPARAM) Xử lý thông điệp cho cửa sổ hộp thoại About // // --------------------------------------------------------------------- LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_INITDIALOG: return TRUE; case WM_COMMAND: if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) { EndDialog(hDlg, LOWORD(wParam)); return TRUE; } break; } return FALSE; } Nguyen Tri Tuan – Khoa CNTT – DHKHTN Tp.HCM 3/6
- // ---------------------------------------------------------------------- File mô tả tài nguyên c ủa ứng dụng (Resource of application) // // Generic_App.rc Nguyen Tri Tuan - Khoa CNTT – ĐH.KHTN Tp.HCM // // ---------------------------------------------------------------------- #include "resource.h" #define APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 2 resource. // #define APSTUDIO_HIDDEN_SYMBOLS #include "windows.h" #undef APSTUDIO_HIDDEN_SYMBOLS #include "resource.h" ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // English (U.S.) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) #ifdef _WIN32 LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US #pragma code_page(1252) #endif //_WIN32 // ---------------------------------------------------------------------- // Mô tả các icon // ---------------------------------------------------------------------- IDI_C ICON DISCARDABLE "c.ICO" IDI_SMALL ICON DISCARDABLE "SMALL.ICO" // ---------------------------------------------------------------------- // Mô tả các menu // ---------------------------------------------------------------------- IDC_C MENU DISCARDABLE BEGIN POPUP "&File" BEGIN MENUITEM "E&xit", IDM_EXIT END POPUP "&Help" BEGIN MENUITEM "&About ...", IDM_ABOUT END END // ---------------------------------------------------------------------- // Mô tả các phím tắt (Accelerator) // ---------------------------------------------------------------------- IDC_C ACCELERATORS MOVEABLE PURE BEGIN "?", IDM_ABOUT, ASCII, ALT "/", IDM_ABOUT, ASCII, ALT END // ---------------------------------------------------------------------- // Mô tả các dialog // ---------------------------------------------------------------------- IDD_ABOUTBOX DIALOG DISCARDABLE 22, 17, 178, 39 STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU CAPTION "About" Nguyen Tri Tuan – Khoa CNTT – DHKHTN Tp.HCM 4/6
- FONT 8, "System" BEGIN ICON IDI_C,IDC_MYICON,14,9,20,20 LTEXT "Generic App. Version 1.0",IDC_STATIC,39,10,119,8, SS_NOPREFIX LTEXT "Copyright (C) 2004",IDC_STATIC,39,20,83,8 DEFPUSHBUTTON "OK",IDOK,138,25,30,11,WS_GROUP END #ifdef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // TEXTINCLUDE // 2 TEXTINCLUDE DISCARDABLE BEGIN "#define APSTUDIO_HIDDEN_SYMBOLS\r\n" "#include ""windows.h""\r\n" "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n" "#include ""resource.h""\r\n" "\0" END 3 TEXTINCLUDE DISCARDABLE BEGIN "\r\n" "\0" END 1 TEXTINCLUDE DISCARDABLE BEGIN "resource.h\0" END #endif // APSTUDIO_INVOKED // ---------------------------------------------------------------------- // Mô tả các chuỗi (String table) // ---------------------------------------------------------------------- STRINGTABLE DISCARDABLE BEGIN IDS_APP_TITLE "Generic Application - API" IDS_HELLO "Hello World!" IDC_C "About Generic Application" END #endif // English (U.S.) resources ///////////////////////////////////////////////////////////////////////////// #ifndef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 3 resource. // ///////////////////////////////////////////////////////////////////////////// #endif // not APSTUDIO_INVOKED Nguyen Tri Tuan – Khoa CNTT – DHKHTN Tp.HCM 5/6
- // ---------------------------------------------------------------------- File header mô t ả các hằng số của chương trình. // // Generic_App.h Sử dụng cho: Generic_App.cpp, Generic_App.rc // Nguyen Tri Tuan - Khoa CNTT – ĐH.KHTN Tp.HCM // // ---------------------------------------------------------------------- // Used by C.RC // #define IDR_MAINFRAME 128 #define IDD_C_DIALOG 102 #define IDD_ABOUTBOX 103 #define IDS_APP_TITLE 103 #define IDM_ABOUT 104 #define IDM_EXIT 105 #define IDS_HELLO 106 #define IDI_C 107 #define IDI_SMALL 108 #define IDC_C 109 #define IDC_MYICON 2 #define IDC_STATIC -1 // Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 129 #define _APS_NEXT_COMMAND_VALUE 32771 #define _APS_NEXT_CONTROL_VALUE 1000 #define _APS_NEXT_SYMED_VALUE 110 #endif #endif Nguyen Tri Tuan – Khoa CNTT – DHKHTN Tp.HCM 6/6
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài tập thực hành Lập trình trên môi trường Windows (Lập trình Windows Form với C#): Lab 9 - ĐH Công nghệ Tp.HCM
9 p | 151 | 32
-
Cài đặt Apps từ Sources
4 p | 104 | 9
-
Giải đáp thắc mắc hay gặp với OS X Lion
5 p | 61 | 5
-
Làm chủ Task Manager trong Windows 8
3 p | 70 | 5
-
Vào App World trên PlayBook sử dụng HTTP Proxy
4 p | 99 | 4
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn