Tải bản đầy đủ (.pdf) (6 trang)

10 generic app tủ tài liệu bách khoa

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (38.19 KB, 6 trang )

// ---------------------------------------------------------------------//
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
HINSTANCE
TCHAR
TCHAR

toàn cục
hInst;
szTitle[MAX_LOADSTRING];
szWindowClass[MAX_LOADSTRING];

// instance của application
// Tiêu đề của cửa sổ
// Tên lớp cửa sổ (window class name)

// 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
MSG
HACCEL
hAccelTable

bảng phím tắt (cho các menu item)
msg;
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
LTEXT
LTEXT
DEFPUSHBUTTON

IDI_C,IDC_MYICON,14,9,20,20
"Generic App. Version 1.0",IDC_STATIC,39,10,119,8,
SS_NOPREFIX
"Copyright (C) 2004",IDC_STATIC,39,20,83,8
"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
#define
#define
#define
#endif
#endif

_APS_NEXT_RESOURCE_VALUE
_APS_NEXT_COMMAND_VALUE
_APS_NEXT_CONTROL_VALUE
_APS_NEXT_SYMED_VALUE

Nguyen Tri Tuan – Khoa CNTT – DHKHTN Tp.HCM

129
32771

1000
110

6/6



×