?? 13-2.txt
字號:
/* 范例:13-2 */
/* 以下程序代碼將范例13-1的WindowProc( )改寫 */
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);
return 0;
case WM_LBUTTONDOWN: // 鼠標左鍵,改Title+白矩形
// 設定窗口標題行(title)文字
SetWindowText(hWnd, (LPSTR)"Change Title!");
//=========畫一個白色填滿的矩形=========
HBRUSH hbr, hbrOld;
hDC = GetDC(hWnd); // 獲得DC
// 建立并獲得白色筆刷(Brush)
hbr = (HBRUSH)GetStockObject(WHITE_BRUSH);
hbrOld = (HBRUSH)SelectObject(hDC, hbr);
// 畫矩形
Rectangle(hDC, 10, 10, 100, 100);
// 選擇舊筆刷(還原筆刷)
SelectObject(hDC, hbrOld);
DeleteObject(hbr);
//======================================
return 0;
case WM_RBUTTONDOWN: // 鼠標右鍵,畫紅色矩形框
//=========畫一個紅色外框的矩形=========
HPEN hpen, hpenOld;
hDC = GetDC(hWnd); // 獲得DC
// 建立并獲得畫筆(Pen)
hpen = CreatePen(PS_SOLID, 6, RGB(255, 0, 0));
hpenOld = (HPEN)SelectObject(hDC, hpen);
// 畫矩形
Rectangle(hDC, 10, 10, 100, 100);
// 選擇舊畫筆(還原畫筆)
SelectObject(hDC, hpenOld);
DeleteObject(hpen);
//======================================
return 0;
default: // 不處理的信息,交給系統自行處理
return DefWindowProc(hWnd, message, wParam, lParam);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -