21xrx.com
2024-12-26 02:52:39 Thursday
登录
文章检索 我的文章 写文章
C++绘制正方形的代码
2023-07-14 06:56:21 深夜i     --     --
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的正方形。在实际开发中,可以根据需要修改绘制参数,实现自定义的正方形。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复