21xrx.com
2025-04-12 01:48:25 Saturday
文章检索 我的文章 写文章
C++绘制正方形的代码
2023-07-14 06:56:21 深夜i     40     0
C++ 绘制 正方形 代码 程序

C++语言是一种非常强大的编程语言,它可以用于实现各种计算机软件和应用程序。在图像处理方面,C++语言的图形库提供了丰富的绘图函数,可以实现各种图形的绘制。在本文中,将介绍如何使用C++语言绘制一个正方形的代码。

要绘制一个正方形,需要先创建一个窗口和一个设备环境,然后使用绘图函数将正方形绘制到设备环境上。下面是绘制正方形的代码:

#include <windows.h>
#include <windowsx.h>
#include <iostream>
//定义窗口处理函数
LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
  switch (uMsg)
  {
  case WM_DESTROY:
    PostQuitMessage(0);
    return 0;
  case WM_PAINT:
    {
      PAINTSTRUCT ps;
      HDC hdc = BeginPaint(hwnd, &ps);
      RECT rcClient;
      GetClientRect(hwnd, &rcClient);
      int posX = rcClient.right / 2 - 50;
      int posY = rcClient.bottom / 2 - 50;
      Rectangle(hdc, posX, posY, posX + 100, posY + 100);
      EndPaint(hwnd, &ps);
    }
    return 0;
  default:
    return DefWindowProc(hwnd, uMsg, wParam, lParam);
  }
}
//窗口主函数
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
  LPSTR lpCmdLine, int nCmdShow)
{
  WNDCLASSEX wc;
  HWND hwnd;
  MSG msg;
  //定义窗口类
  ZeroMemory(&wc, sizeof(WNDCLASSEX));
  wc.cbSize = sizeof(WNDCLASSEX);
  wc.style = CS_HREDRAW | CS_VREDRAW;
  wc.lpfnWndProc = WindowProc;
  wc.hInstance = hInstance;
  wc.hCursor = LoadCursor(NULL, IDC_ARROW);
  wc.lpszClassName = "MainWindow";
  RegisterClassEx(&wc);
  //创建窗口
  hwnd = CreateWindowEx(NULL,
    "MainWindow",
    "Hello, world!",
    WS_OVERLAPPEDWINDOW,
    300, 300,
    640, 480,
    NULL, NULL,
    hInstance,
    NULL);
  //显示窗口
  ShowWindow(hwnd, nCmdShow);
  //消息循环
  while (GetMessage(&msg, NULL, 0, 0))
  {
    TranslateMessage(&msg);
    DispatchMessage(&msg);
  }
  return msg.wParam;
}

上述代码定义了一个名为“MainWindow”的窗口类,并在窗口处理函数中实现了绘制正方形的功能。具体实现方式如下:

1. 在`WM_PAINT`消息处理函数中,获取窗口客户区的大小,计算正方形的位置并绘制正方形。

2. 使用RECT结构体定义正方形的左上角坐标(posX, posY)和右下角坐标(posX + 100, posY + 100)。

3. 调用Rectangle函数绘制正方形,该函数需要传入一个DC(设备环境)和RECT结构体,其作用是在指定区域绘制一个矩形。

运行上述代码,即可在窗口中看到一个边长为100的正方形。在实际开发中,可以根据需要修改绘制参数,实现自定义的正方形。

  
  

评论区

请求出错了