21xrx.com
2024-12-22 22:16:25 Sunday
登录
文章检索 我的文章 写文章
C++关闭窗口的代码
2023-07-05 12:52:35 深夜i     --     --
C++ 窗口 关闭 代码 GUI

在使用C++编写窗口应用程序时,关闭窗口是经常会用到的操作。本篇文章将介绍如何编写C++代码实现关闭窗口的功能。

首先,在窗口应用程序中,关闭窗口的操作通常是由菜单栏或工具栏中的“关闭”按钮触发的,因此我们需要在代码中添加对该按钮的响应函数。

下面是一段简短的代码示例,演示如何通过响应“关闭”按钮来关闭窗口:


// 声明对关闭按钮的响应函数

LRESULT CALLBACK wndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);

// 注册窗口类

WNDCLASS wc = {};

wc.lpfnWndProc = wndProc;

// ...其他窗口类属性

RegisterClass(&wc);

// 创建窗口

HWND hWnd = CreateWindow(

  // ...窗口类名、标题、大小等属性

);

// 响应关闭按钮的函数

LRESULT CALLBACK wndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)

{

  switch (msg)

  {

    case WM_COMMAND:

      switch (LOWORD(wParam))

      {

        case IDM_EXIT: // “关闭”按钮的ID为IDM_EXIT

          {

            DestroyWindow(hWnd);

            break;

          }

      }

      break;

    case WM_DESTROY:

      PostQuitMessage(0);

      break;

    default:

      // 处理其它消息

      return DefWindowProc(hWnd, msg, wParam, lParam);

  }

  return 0;

}

以上代码中,我们首先定义了一个响应函数`wndProc`,当用户点击“关闭”按钮时,会调用这个函数。当接收到`WM_COMMAND`消息时(即点击按钮时),我们通过`LOWORD(wParam)`得到按钮的ID,如果该ID为`IDM_EXIT`则调用`DestroyWindow(hWnd)`来关闭窗口。

需要注意的是,在这个示例中,我们并没有直接结束程序,而是通过发送`WM_DESTROY`消息和调用`PostQuitMessage(0)`来让主循环程序退出。这是比较标准的关闭窗口的方式。

当关闭按钮被点击时,会发送一个`WM_CLOSE`消息,这个消息的处理通常也需要进行自定义。这个消息的处理方式可以在响应函数`wndProc`中添加:


case WM_CLOSE:

  {

    if (MessageBox(hWnd, "是否要关闭窗口?", "确认关闭窗口", MB_YESNO | MB_ICONQUESTION) == IDYES)

      DestroyWindow(hWnd);

    break;

  }

以上代码中,当接收到`WM_CLOSE`消息时,我们会弹出一个消息框,提示用户是否确认关闭窗口。如果用户确认关闭窗口则调用`DestroyWindow(hWnd)`来关闭窗口。如果不想提示用户就直接关闭窗口,可以将以上代码中的判断语句去掉。

综上所述,通过以上几行简短的代码,我们就可以实现C++的窗口程序关闭功能。需要注意的是,我们所介绍的代码仅供参考,具体的实现方式还需要根据具体需求进行调整。

  
  
下一篇: C++延迟1秒

评论区

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