⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 13-2.txt

📁 C++完美演绎源代码
💻 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 + -