21xrx.com
2025-03-27 03:51:45 Thursday
文章检索 我的文章 写文章
C++编程:弹出窗口并获取用户输入的文本
2023-07-05 11:59:10 深夜i     9     0
C++ 编程 弹出窗口 获取用户输入 文本

C++编程可以实现弹出窗口并获取用户输入的文本。当我们需要从用户那里获取某些信息时,比如用户的名字或者电话号码等,可以使用C++编写弹框界面,在界面上让用户输入信息并将其保存。

在Windows下,可以使用Win32 API编写程序来创建弹出窗口,具体步骤如下:

1. 引入头文件和库文件:

#include <windows.h>
#pragma comment(lib, "user32.lib")

2. 定义回调函数:

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);

该函数用于处理窗口消息。

3. 创建窗口:

WNDCLASS wc = {};
wc.lpfnWndProc = WndProc;
wc.hInstance = hInstance;
wc.lpszClassName = L"WindowClass";
RegisterClass(&wc);
HWND hwnd = CreateWindow(
  L"WindowClass",
  L"窗口标题",
  WS_OVERLAPPEDWINDOW,
  CW_USEDEFAULT, CW_USEDEFAULT,
  400, 300,
  NULL, NULL, hInstance, NULL);

4. 显示窗口:

ShowWindow(hwnd, nCmdShow);
UpdateWindow(hwnd);

5. 处理窗口消息:

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
  switch (message)
  {
  case WM_CREATE:
    break;
  case WM_DESTROY:
    PostQuitMessage(0);
    break;
  case WM_PAINT:
    {
      PAINTSTRUCT ps;
      HDC hdc = BeginPaint(hWnd, &ps);
      EndPaint(hWnd, &ps);
    }
    break;
  case WM_COMMAND:
    switch (LOWORD(wParam))
    {
    case IDOK:
      WCHAR text[256];
      GetDlgItemText(hwnd, IDC_EDIT1, text, 256);
      MessageBox(hwnd, text, L"输入的文本为:", MB_OK);
      break;
    }
    break;
  default:
    return DefWindowProc(hWnd, message, wParam, lParam);
  }
  return 0;
}

6. 创建编辑框:

HFONT font = CreateFont(20, 0, 0, 0, 0, FALSE, FALSE, FALSE,
            ANSI_CHARSET, OUT_DEFAULT_PRECIS,
            CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,
            DEFAULT_PITCH, L"宋体");
HWND editbox = CreateWindowEx(
  WS_EX_CLIENTEDGE,
  L"EDIT",
  L"默认文本",
  WS_VISIBLE | WS_CHILD | ES_AUTOHSCROLL,
  50, 50, 200, 24,
  hwnd, (HMENU)IDC_EDIT1, hInstance, NULL);
SendMessage(editbox, WM_SETFONT, (WPARAM)font, TRUE);

以上代码中的IDC_EDIT1是编辑框的ID号码。

7. 创建按钮:

HWND button = CreateWindow(
  L"BUTTON",
  L"确定",
  WS_TABSTOP | WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON,
  150, 100, 80, 30,
  hwnd, (HMENU)IDOK, hInstance, NULL);

8. 进入消息循环:

MSG msg = {};
while (GetMessage(&msg, NULL, 0, 0))
{
  TranslateMessage(&msg);
  DispatchMessage(&msg);
}

通过以上代码,我们就可以创建一个有输入框和确定按钮的弹出窗口,并获取用户输入的文本了。当用户点击确定按钮后,我们可以使用GetDlgItemText函数来获取编辑框中的文本,然后用MessageBox弹出提示框来显示用户输入的文本。

总之,C++编程实现弹窗并获取用户输入的文本功能非常简单,只需要按照以上步骤编写程序即可。这种方式通常用于编写图形界面程序,具有良好的用户交互性和易用性。

  
  

评论区