21xrx.com
2024-12-22 17:19:44 Sunday
登录
文章检索 我的文章 写文章
C++创建窗口教程
2023-07-05 14:27:09 深夜i     --     --
C++ 创建窗口 教程 程序设计 GUI界面

C++是一种流行的编程语言,常用于开发桌面应用程序。在许多应用程序中,创建一个窗口是一个基本任务。在本教程中,我们将介绍如何使用C++创建一个简单的窗口。

首先,你需要打开一个新的C++项目并创建一个源文件。然后,将以下代码复制并粘贴到源文件中:


#include <windows.h>

LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)

{

  // Register the window class.

  const char CLASS_NAME[] = "Sample Window Class";

  

  WNDCLASS wc = { };

  wc.lpfnWndProc  = WindowProc;

  wc.hInstance   = hInstance;

  wc.lpszClassName = CLASS_NAME;

  RegisterClass(&wc);

  // Create the window.

  HWND hwnd = CreateWindowEx(

    0,               // Optional window styles.

    CLASS_NAME,           // Window class

    "Learn to Program Windows",   // Window text

    WS_OVERLAPPEDWINDOW,      // Window style

    // Size and position

    CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,

    NULL,    // Parent window  

    NULL,    // Menu

    hInstance, // Instance handle

    NULL    // Additional application data

    );

  if (hwnd == NULL)

  

    return 0;

  

  ShowWindow(hwnd, nCmdShow);

  // Run the message loop.

  MSG msg = { };

  while (GetMessage(&msg, NULL, 0, 0))

  {

    TranslateMessage(&msg);

    DispatchMessage(&msg);

  }

  return 0;

}

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);

        FillRect(hdc, &ps.rcPaint, (HBRUSH) (COLOR_WINDOW+1));

        EndPaint(hwnd, &ps);

      }

      return 0;

    default:

      return DefWindowProc(hwnd, uMsg, wParam, lParam);

  }

}

该代码通过Windows API函数调用来实现创建窗口的过程。

第一段代码段中,`WinMain`函数是程序的主入口点。它首先注册一个窗口类`WNDCLASS`,该类定义了窗口的基本属性,使用了窗口处理函数`WindowProc`。然后使用`CreateWindowEx`函数创建窗口实例,并指定窗口的显示方式。`ShowWindow`函数将窗口显示在屏幕上。

第二段代码段中,`WindowProc`函数是一个Windows消息处理函数,它响应Windows发送给窗口的各种消息。在本教程中,我们只需要响应`WM_DESTROY`消息和`WM_PAINT`消息即可。当`WM_DESTROY`消息被触发时,它会关闭窗口并结束程序。当`WM_PAINT`消息被触发时,它会绘制窗口背景颜色。

现在你可以编译并运行该程序。你应该能够看到一个空白的窗口显示在屏幕上。

在这个简单的教程中,我们介绍了如何使用C++创建一个基本的窗口。这只是许多使用C++开发桌面应用程序的任务之一。但是,掌握这个基本技能对于任何使用C++开发应用程序的人来说都是至关重要的。

  
  

评论区

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