21xrx.com
2024-12-22 22:28:07 Sunday
登录
文章检索 我的文章 写文章
如何使用c++关闭程序窗口?
2023-07-07 21:26:03 深夜i     --     --
c++ 关闭 程序窗口

在C++编程中,有时候需要在程序运行时关闭程序窗口,比如在程序出现异常或者用户点击“关闭”按钮时,需要终止程序的执行并关闭程序窗口。那么,如何使用C++关闭程序窗口呢?本文将介绍两种方法。

第一种方法:使用Win32 API函数

Windows系统提供了一组API函数,可以很方便地操作窗口。其中,可以使用SendMessage函数发送WM_CLOSE消息来关闭窗口。示例代码如下:


#include <windows.h>

#include <iostream>

using namespace std;

int main()

{

  HWND hwnd = FindWindow(NULL, "窗口标题"); // 获取窗口句柄

  if (hwnd != NULL)

  {

    SendMessage(hwnd, WM_CLOSE, 0, 0); // 发送关闭消息

  }

  else

  

    cout << "未找到指定窗口!" << endl;

  

  return 0;

}

其中,FindWindow函数可以通过窗口标题或类名来查找窗口,如果找到了对应窗口,则返回窗口句柄;否则返回NULL。

第二种方法:使用MFC框架

MFC是Microsoft Foundation Classes的缩写,是一个C++类库,提供了一些便于Windows程序开发的类和函数。使用MFC框架,可以通过调用CWnd::PostMessage函数来发送关闭消息。示例代码如下:


#include <afxwin.h>

#include <iostream>

using namespace std;

class CMainWnd : public CFrameWnd

{

public:

  CMainWnd()

  {

    Create(NULL, "窗口标题", WS_OVERLAPPEDWINDOW, CRect(0, 0, 400, 300)); // 创建窗口

  }

  afx_msg void OnClose()

  {

    PostMessage(WM_CLOSE); // 发送关闭消息

  }

  DECLARE_MESSAGE_MAP()

};

BEGIN_MESSAGE_MAP(CMainWnd, CFrameWnd)

  ON_WM_CLOSE()

END_MESSAGE_MAP()

int main()

{

  CWinApp app;

  CMainWnd wnd;

  wnd.ShowWindow(SW_SHOW); // 显示窗口

  app.Run(); // 运行消息循环

  return 0;

}

在MFC框架中,首先需要创建一个窗口类CMainWnd,并重写OnClose函数,在函数中调用PostMessage函数发送关闭消息。然后,在窗口创建后调用ShowWindow函数显示窗口,并调用Run函数启动消息循环。

总结:

以上介绍了两种C++关闭程序窗口的方法,分别适用于Win32 API和MFC框架。如果想以更高级的方式进行窗口管理,在Windows 10的最新版本中,可以使用UWP应用程序开发框架,开发出支持多种设备的现代化应用。

  
  

评论区

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