?? 13-1.txt
字號:
/* 范例:13-1 */
#include <windows.h>
#include <vcl.h>
long CALLBACK WindowProc(HWND hWnd, UINT message, \
WPARAM wParam, LPARAM lParam);
int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE \
hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
WNDCLASS WindowClass; // 建立WNDCLASS結構變量
static char szAppName[] = "OFWin"; // 定義 window class 名稱
HWND hWnd; // 窗口代碼(HWND結構變量hWnd)
MSG msg; // 信息結構(MSG結構變量msg)
if(!hPrevInstance)
{
// 若窗口改變大小時,重繪窗口
WindowClass.style = CS_HREDRAW | CS_VREDRAW;
// 定義處理信息的窗口程序(Window procedure)
WindowClass.lpfnWndProc = WindowProc;
WindowClass.cbClsExtra = 0; // 類結構中所保留的額外空間
WindowClass.cbWndExtra = 0; // 窗口結構中所保留的額外空間
WindowClass.hInstance = hInstance; // 應用程序代碼
// 設定應用程序默認Icon
WindowClass.hIcon = LoadIcon(0, IDI_APPLICATION);
// 將窗口光標設成標準箭頭
WindowClass.hCursor = LoadCursor(0, IDC_ARROW);
// 設定背景畫刷(brush)顏色為灰色筆刷
WindowClass.hbrBackground = \
static_cast<HBRUSH>(GetStockObject(GRAY_BRUSH));
// 指定到class menu的資源名稱,此處未使用菜單,
// 因此無相對應資源名稱
WindowClass.lpszMenuName = 0;
WindowClass.lpszClassName = szAppName; // 設定結構名稱
RegisterClass(&WindowClass); // 注冊此window class
}
// 建立窗口
hWnd = CreateWindow(
szAppName, // 已注冊的window class名稱
"A Basic Window the Hard Way", // 窗口標題
WS_OVERLAPPEDWINDOW, // 設定窗口為重疊顯示
CW_USEDEFAULT, // 窗口在screen左上角x位置
CW_USEDEFAULT, // 窗口在screen左上角y位置
CW_USEDEFAULT, // 窗口水平大小
CW_USEDEFAULT, // 窗口垂直大小
0, // 表示無父窗口
0, // 沒有Menu
hInstance, // 程序的代碼
0 // 建立參數指針
);
ShowWindow(hWnd, nCmdShow); // 顯示窗口
UpdateWindow(hWnd); // 使文本工作區被著色
// 信息循環
while(GetMessage(&msg, 0, 0, 0) == TRUE) // 獲得所有信息
{
TranslateMessage(&msg); // 轉換虛擬鍵信息成為字符信息
DispatchMessage(&msg); // 分配信息
}
return msg.wParam; // 返回Windows系統
}
long CALLBACK WindowProc(HWND hWnd, UINT message, \
WPARAM wParam, LPARAM lParam)
{
HDC hDC; // Display context handle
PAINTSTRUCT PaintSt; // 定義繪圖區域的結構
RECT aRect; // 工作矩形區域
switch(message) // 處理信息
{
case WM_PAINT: // 重繪窗口時
hDC = BeginPaint(hWnd, &PaintSt); // 準備開始重繪
// 獲得工作區域
GetClientRect(hWnd, &aRect);
SetBkMode(hDC, TRANSPARENT); // 設定文字背景模式
// 在窗口工作區繪出文字
DrawText(
hDC, // 設備內容代碼
"改變窗口大小,字會跟著調整到中央咧!!", // 繪出的文字
-1, // 指向以'\0'結尾字符串
&aRect, // 繪文字的矩形區域
DT_SINGLELINE| // 文字格式 - 單行
DT_CENTER| // - 線中間
DT_VCENTER // - 線在矩形中央
);
EndPaint(hWnd, &PaintSt); // 窗口重繪結束
return 0;
case WM_DESTROY: // 窗口被關閉
PostQuitMessage(0); // 彈出WM_QUIT信息
return 0;
default: // 不處理的信息,交給系統自行處理
return DefWindowProc(hWnd, message, wParam, lParam);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -