21xrx.com
2025-06-06 10:42:29 Friday
文章检索 我的文章 写文章
C++创建窗口教程
2023-07-05 14:27:09 深夜i     27     0
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++开发应用程序的人来说都是至关重要的。

  
  

评论区