21xrx.com
2024-12-27 20:03:31 Friday
登录
文章检索 我的文章 写文章
C++对话框源代码
2023-06-29 20:11:32 深夜i     --     --
C++ 对话框 源代码 GUI MFC

C++对话框是一种非常重要的GUI(图形用户界面)实现方式,其可以使得程序开发人员轻松创建出美观的用户界面。在本文中,我们将为您提供一份C++对话框源代码,帮助您深入理解C++对话框的实现。

以下是C++对话框的源代码:

#include

#include

HINSTANCE hInst;

LPCTSTR szClassName = _T("MyDialogClass");

LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) {

  switch (msg) {

    case WM_CREATE: {

      CreateWindow(_T("BUTTON"), _T("OK"),

        WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON,

        10, 10, 100, 25, hwnd, (HMENU) IDOK, hInst, NULL);

      CreateWindow(_T("BUTTON"), _T("CANCEL"),

        WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON,

        120, 10, 100, 25, hwnd, (HMENU) IDCANCEL, hInst, NULL);

      break;

    }

    case WM_COMMAND: {

      switch (LOWORD(wParam)) {

        case IDOK:

          MessageBox(hwnd, _T("OK button clicked"),

            _T("C++ Dialog"), MB_OK | MB_ICONINFORMATION);

          break;

        case IDCANCEL:

          EndDialog(hwnd, 0);

          break;

      }

      break;

    }

    default:

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

  }

  return 0;

}

BOOL CALLBACK DialogProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lParam) {

  switch (message) {

    case WM_INITDIALOG:

      return TRUE;

    case WM_CLOSE:

      EndDialog(hwndDlg, 0);

      return TRUE;

    default:

      return FALSE;

  }

}

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

  hInst = hInstance;

  HWND hwnd = CreateDialog(hInstance, MAKEINTRESOURCE(IDD_DIALOG1), NULL, DialogProc);

  if (!hwnd) {

    MessageBox(NULL, _T("Window Creation Failed!"), _T("Error!"),

      MB_ICONEXCLAMATION | MB_OK);

    return 0;

  }

  ShowWindow(hwnd, nCmdShow);

  MSG msg = {0};

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

    TranslateMessage(&msg);

    DispatchMessage(&msg);

  }

  return msg.wParam;

}

首先,我们定义了C++对话框的窗口类名称为“MyDialogClass”,并通过“WndProc”函数实现了窗口处理函数。在“WM_CREATE”消息中,我们创建了两个按钮控件,一个是“OK”按钮,一个是“CANCEL”按钮。我们还配置了这两个按钮控件的属性,设置它们在创建后就可见,可用,并且定义了它们的大小和位置。

在“WM_COMMAND”消息中,我们检查了被单击按钮的ID,并采取相应的操作。对于“IDOK”,我们调用了Windows API函数 “MessageBox”来显示一个消息框,并在消息框中显示“OK button clicked”信息。对于“IDCANCEL”,我们调用了Windows API函数“EndDialog”,以结束当前对话框。如果接受到的消息不是“WM_CREATE”或“WM_COMMAND”消息,则通过Windows API函数“DefWindowProc”来处理它。

接下来,我们定义了“DialogProc”函数,通过发送“WM_INITDIALOG”消息来创建对话框。我们还通过发送“WM_CLOSE”消息来关闭对话框。

最后,我们定义了“WinMain”函数,该函数是C++应用程序的入口点。我们使用Windows API函数“CreateDialog”创建一个对话框,并将结果保存在“hwnd”变量中。如果无法创建对话框,则显示一个错误消息框。接下来,我们使用Windows API函数“ShowWindow”来显示对话框,并通过消息循环处理类似于键盘输入和鼠标事件等的操作。我们使用一个循环来等待接受信息,直到获得“WM_QUIT”消息。

总之,以上是C++对话框的源代码。借助这个源代码,您可以进一步了解如何实现C++对话框,并使用它来创建自己的GUI应用程序。

  
  

评论区

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