MFC CDialog 类 公共方法:CDialog::MapDialogRect
在 MFC(Microsoft Foundation Classes)中,CDialog::MapDialogRect 是一个公共方法,用于将对话框客户区域的逻辑单位(逻辑坐标)映射到设备单位(设备坐标)。以下是 CDialog::MapDialogRect 的声明:void MapDialogRect(LPRECT lpRect) const;该方法接受一个指向 RECT 结构的指针作为参数,该结构描述了矩形的坐标。MapDialogRect 将该矩形从逻辑单位映射到设备单位。这在处理对话框中的控件布局时非常有用,因为 MFC 中通常使用逻辑单位来指定对话框的大小和位置。以下是一个简单的示例,演示如何使用 MapDialogRect 方法:// 在对话框类中使用 MapDialogRect 方法void CMyDialog::OnSize(UINT nType, int cx, int cy){ CDialog::OnSize(nType, cx, cy); // 获取对话框客户区域的大小 CRect rectClient; GetClientRect(rec...
MFC CDialog 类 公共方法:CDialog::GotoDlgCtrl
在 MFC(Microsoft Foundation Classes)中,CDialog::GotoDlgCtrl 是一个公共方法,用于将输入焦点移动到对话框中的指定控件。以下是 CDialog::GotoDlgCtrl 的声明:void GotoDlgCtrl(CWnd* pWndCtrl);该方法接受一个指向窗口控件(CWnd 类型)的指针作为参数,并将输入焦点移动到指定的控件上。这通常在对话框初始化过程中或在特定用户操作后需要设置焦点时使用。以下是一个简单的示例,演示如何使用 GotoDlgCtrl 方法:// 在对话框初始化过程中使用 GotoDlgCtrl 方法BOOL CMyDialog::OnInitDialog(){ CDialog::OnInitDialog(); // 将输入焦点设置到某个控件上 CWnd* pWndCtrl = GetDlgItem(IDC_EDIT_NAME); if (pWndCtrl != nullptr) { GotoDlgCtrl(pWndCtrl); } return TRUE; ...
MFC CDialog 类 公共方法:CDialog::GetDefID
在 MFC(Microsoft Foundation Classes)中,CDialog::GetDefID 是一个公共方法,用于获取对话框的默认按钮的标识符(ID)。默认按钮是用户按下 "Enter" 键时触发的按钮。以下是 CDialog::GetDefID 的声明:UINT GetDefID() const;该方法返回一个 UINT,代表对话框的默认按钮的标识符。如果没有默认按钮,或者默认按钮的标识符无效,则返回 0。以下是一个示例,演示如何使用 GetDefID 方法:// 在某个成员函数中使用 GetDefID 方法void CMyDialogAppDlg::OnButtonCheckDefaultButton(){ CMyDialog dlg; // 获取对话框的默认按钮的标识符 UINT nDefID = dlg.GetDefID(); if (nDefID != 0) { // 对话框有默认按钮 TRACE(_T("Default button ID: %d\n"), nD...
MFC CDialog 类 公共方法:CDialog::EndDialog
在 MFC(Microsoft Foundation Classes)中,CDialog::EndDialog 是一个用于结束模态对话框的公共方法。这个方法会将对话框的模态循环退出,并返回指定的结果代码。以下是 CDialog::EndDialog 的声明:void EndDialog(int nResult); nResult 参数表示对话框的结果代码。通常,IDOK 表示用户点击了“确定”按钮,而 IDCANCEL 表示用户点击了“取消”按钮。你也可以使用其他自定义的结果代码。以下是一个示例,演示如何在对话框的按钮处理函数中使用 EndDialog:// 在对话框的按钮处理函数中使用 EndDialogvoid CMyDialog::OnOK(){ // 在这里执行对话框确定按钮的处理逻辑 // 结束对话框并返回 IDOK 作为结果代码 EndDialog(IDOK);}void CMyDialog::OnCancel(){ // 在这里执行对话框取消按钮的处理逻辑 // 结束对话框并返回 IDCANCEL 作为结果代码 EndDialog(ID...
MFC CDialog 类 公共方法:CDialog::DoModal
在 MFC(Microsoft Foundation Classes)中,CDialog::DoModal 是用于显示模态对话框的公共方法。模态对话框是一种弹出式窗口,它将阻塞用户与应用程序的其他部分的交互,直到对话框关闭。以下是 CDialog::DoModal 的声明:INT_PTR DoModal();DoModal 函数返回一个 INT_PTR 值,通常是对话框中的按钮 ID,表示对话框的返回状态。它可以用于确定用户在对话框中点击的是哪个按钮,或者是否对话框被取消等。以下是一个简单的示例:// 在某个成员函数中使用 DoModal 方法void CMyDialogAppDlg::OnButtonShowDialog(){ CMyDialog dlg; INT_PTR nResponse = dlg.DoModal(); // 根据用户的响应进行处理 switch (nResponse) { case IDOK: // 用户点击了确定按钮 // 可以执行相应的操作 break; case IDCA...
MFC CDialog 类 公共方法:CDialog::CreateIndirect
在 MFC(Microsoft Foundation Classes)中,CDialog::CreateIndirect 是一个用于创建对话框的公共方法。这个方法的目的是根据一个对话框模板的直接描述(通常是在内存中的数据)来创建对话框窗口。以下是 CDialog::CreateIndirect 的声明:virtual BOOL CreateIndirect( const DLGTEMPLATE* lpDialogTemplate, CWnd* pParentWnd = NULL, void* lpDialogInit = NULL); lpDialogTemplate:指向对话框模板的指针。 pParentWnd:指向对话框的父窗口的指针。 lpDialogInit:指向对话框的初始化数据的指针。示例用法如下:// 假设已经有一个 DLGTEMPLATE 对象(在内存中的对话框模板数据)CDialog dlg;if (dlg.CreateIndirect(&dlgTemplate, pParentWnd)){ // 对话框创建成功,可以进行其他操作 dl...
MFC CDialog 类 公共方法:CDialog::Create
CDialog::Create 是 MFC(Microsoft Foundation Classes)中 CDialog 类的一个公共方法,用于创建对话框窗口。这个方法的声明如下:virtual BOOL Create( LPCTSTR lpszTemplateName, CWnd* pParentWnd = NULL);这个方法用于根据指定的对话框模板创建对话框窗口。参数 lpszTemplateName 是对话框模板的资源 ID 或者对话框模板的名称,pParentWnd 是指向对话框的父窗口的指针。以下是一个简单的示例,演示如何使用 CDialog::Create 方法创建对话框:// 在某个成员函数中使用 Create 方法void CMyDialogAppDlg::OnButtonCreateDialog(){ // 创建对话框窗口 CDialog dlg; if (dlg.Create(IDD_MYDIALOG, this)) { // 显示对话框 dlg.ShowWindow(SW_SHOW); }}在这个...
MFC CDialog 类 公共方法:CDialog::SetDefID
在 MFC(Microsoft Foundation Classes)中,CDialog 类提供了一个名为 SetDefID 的公共方法,用于设置对话框的默认按钮 ID。以下是 CDialog 类的 SetDefID 方法的声明:void SetDefID(UINT nID);SetDefID 方法接受一个 UINT 类型的参数 nID,表示对话框的默认按钮的 ID。设置默认按钮后,当用户按下 "Enter" 键时,与该 ID 相关联的按钮将被模拟点击。以下是一个简单的示例,演示了如何使用 SetDefID 方法:// MyDialog.h#pragma once#include "afxwin.h"class CMyDialog : public CDialog{public: CMyDialog(CWnd* pParent = nullptr); // 默认构造函数 // Dialog Data #ifdef AFX_DESIGN_TIME enum { IDD = IDD_MYDIALOG }; #en...
MFC CDialog 类 公共方法:CDialog::PrevDlgCtrl
在 MFC(Microsoft Foundation Classes)中,CDialog 类提供了一个名为 PrevDlgCtrl 的公共方法,用于设置对话框中当前具有焦点的控件之前的上一个具有焦点的控件。以下是 CDialog 类的 PrevDlgCtrl 方法的声明:CWnd* PrevDlgCtrl() const;PrevDlgCtrl 方法返回一个指向 CWnd 对象的指针,该对象表示对话框中当前具有焦点的控件之前的上一个具有焦点的控件。如果没有更多的具有焦点的控件,则返回 NULL。以下是一个简单的示例,演示了如何使用 PrevDlgCtrl 方法:// MyDialog.h#pragma once#include "afxwin.h"class CMyDialog : public CDialog{public: CMyDialog(CWnd* pParent = nullptr); // 默认构造函数 // Dialog Data #ifdef AFX_DESIGN_TIME enum { IDD = IDD_MYDI...
MFC CDialog 类 公共方法:CDialog::OnInitDialog
在 MFC(Microsoft Foundation Classes)中,CDialog 类提供了一个名为 OnInitDialog 的公共方法,该方法在对话框初始化时被调用。在 OnInitDialog 方法中,您可以执行对话框的初始化工作,例如设置默认值、加载数据、创建控件等。以下是 CDialog 类的 OnInitDialog 方法的声明:virtual BOOL OnInitDialog();OnInitDialog 方法返回一个布尔值,通常为 TRUE 表示成功执行初始化,而 FALSE 表示初始化失败。以下是一个简单的示例,演示了如何使用 OnInitDialog 方法:// MyDialog.h#pragma once#include "afxwin.h"class CMyDialog : public CDialog{public: CMyDialog(CWnd* pParent = nullptr); // 默认构造函数 // Dialog Data #ifdef AFX_DESIGN_TIME enum { ID...
MFC CDialog 类 公共方法:CDialog::NextDlgCtrl
在 MFC(Microsoft Foundation Classes)中,CDialog 类提供了一个名为 NextDlgCtrl 的公共方法,用于设置对话框中当前具有焦点的控件之后的下一个具有焦点的控件。以下是 CDialog 类的 NextDlgCtrl 方法的声明:CWnd* NextDlgCtrl() const;NextDlgCtrl 方法返回一个指向 CWnd 对象的指针,该对象表示对话框中当前具有焦点的控件之后的下一个具有焦点的控件。如果没有更多的具有焦点的控件,则返回 NULL。以下是一个简单的示例,演示了如何使用 NextDlgCtrl 方法:// MyDialog.h#pragma once#include "afxwin.h"class CMyDialog : public CDialog{public: CMyDialog(CWnd* pParent = nullptr); // 默认构造函数 // Dialog Data #ifdef AFX_DESIGN_TIME enum { IDD = IDD_MYDI...
MFC CDialog 类 公共方法:CDialog::MapDialogRect
在 MFC(Microsoft Foundation Classes)中,CDialog 类提供了一个名为 MapDialogRect 的公共方法,该方法用于将对话框客户区矩形坐标映射到屏幕坐标或反之。以下是 CDialog 类的 MapDialogRect 方法的声明:void MapDialogRect(LPRECT lpRect) const;MapDialogRect 方法接受一个指向 RECT 结构的指针 lpRect,该结构包含对话框客户区矩形的坐标。该方法会根据设备的 DPI 缩放系数对矩形进行映射。以下是一个简单的示例,演示了如何使用 MapDialogRect 方法:// MyDialog.h#pragma once#include "afxwin.h"class CMyDialog : public CDialog{public: CMyDialog(CWnd* pParent = nullptr); // 默认构造函数 // Dialog Data #ifdef AFX_DESIGN_TIME enum { ID...
MFC CDialog 类 公共方法:CDialog::GotoDlgCtrl
在 MFC(Microsoft Foundation Classes)中,CDialog 类提供了一个名为 GotoDlgCtrl 的公共方法,该方法用于设置对话框中具有键盘焦点的控件。以下是 CDialog 类的 GotoDlgCtrl 方法的声明:virtual void GotoDlgCtrl(CWnd* pWndCtrl);GotoDlgCtrl 方法接受一个指向控件的指针 pWndCtrl,该控件将被设置为具有键盘焦点。以下是一个简单的示例,演示了如何使用 GotoDlgCtrl 方法:// MyDialog.h#pragma once#include "afxwin.h"class CMyDialog : public CDialog{public: CMyDialog(CWnd* pParent = nullptr); // 默认构造函数 // Dialog Data #ifdef AFX_DESIGN_TIME enum { IDD = IDD_MYDIALOG }; #endifprotected: vi...
MFC CDialog 类 公共方法:CDialog::GetDefID
在 MFC(Microsoft Foundation Classes)中,CDialog 类提供了一个名为 GetDefID 的公共方法,该方法用于检索对话框的默认按钮的 ID。默认按钮是在用户按下 "Enter" 键时触发的按钮。如果未指定默认按钮,则 GetDefID 返回 0。以下是 CDialog 类的 GetDefID 方法的声明:virtual UINT GetDefID() const;GetDefID 方法没有参数,返回值是一个无符号整数,表示对话框的默认按钮的 ID。以下是一个简单的示例,演示了如何使用 GetDefID 方法:// MyDialog.h#pragma once#include "afxwin.h"class CMyDialog : public CDialog{public: CMyDialog(CWnd* pParent = nullptr); // 默认构造函数 // Dialog Data #ifdef AFX_DESIGN_TIME enum { IDD = IDD_MY...
MFC CDialog 类 公共方法:CDialog::EndDialog
EndDialog 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于结束模态对话框。该方法的原型如下:virtual void EndDialog(int nResult);EndDialog 方法接受一个整数参数 nResult,它表示对话框的结束状态。通常,IDOK 表示用户单击了对话框的 "OK" 按钮,而 IDCANCEL 表示用户单击了 "Cancel" 按钮。您可以传递其他值,以便根据需要表示其他状态。以下是一个简单的示例,演示了如何使用 EndDialog 方法:// MyDialog.h#pragma once#include "afxwin.h"class CMyDialog : public CDialog{public: CMyDialog(CWnd* pParent = nullptr); // 默认构造函数 // Dialog Data #ifdef AFX_DESIGN_TIME enum { IDD = IDD_MYDIA...
MFC CDialog 类 公共方法:CDialog::DoModal
在 MFC(Microsoft Foundation Classes)中,CDialog 类提供了一个重要的公共方法 DoModal,用于在应用程序中创建并显示模态对话框。DoModal 方法会使程序在对话框打开期间暂停,直到用户关闭对话框为止。以下是 CDialog 类的 DoModal 方法的声明:INT_PTR DoModal();DoModal 方法返回一个整数,表示对话框的返回代码。通常,返回代码为 IDOK 表示用户单击了对话框的 "OK" 按钮,而 IDCANCEL 表示用户单击了 "Cancel" 按钮。以下是一个简单的示例,演示如何使用 DoModal 方法:// MyDialog.h#pragma once#include "afxwin.h"class CMyDialog : public CDialog{public: CMyDialog(CWnd* pParent = nullptr); // 默认构造函数 // Dialog Data #ifdef AFX_DESIGN_TIME ...
MFC CDialog 类 公共方法:CDialog::CreateIndirect
在 MFC(Microsoft Foundation Classes)中,CDialog 类提供了一个名为 CreateIndirect 的公共方法,用于动态创建对话框,但与 Create 不同的是,CreateIndirect 允许您通过传递一个对话框模板结构的指针来创建对话框。以下是 CDialog 类的 CreateIndirect 方法的声明:virtual BOOL CreateIndirect( LPCDLGTEMPLATE lpDialogTemplate, CWnd* pParentWnd = NULL, HINSTANCE hInst = NULL);该方法接受三个参数: lpDialogTemplate:一个指向对话框模板结构的指针。 pParentWnd:一个可选的指向父窗口的指针。 hInst:一个可选的实例句柄。使用这个方法,您可以在运行时创建一个对话框,而不需要在资源编辑器中定义对话框模板。以下是一个简单的示例,演示如何使用 CreateIndirect 方法:// MyDialog.h#pragma once#include "...
MFC CDialog 类 公共方法:CDialog::Create
在 MFC(Microsoft Foundation Classes)中,CDialog 类提供了一个名为 Create 的公共方法,用于动态创建对话框。Create 方法允许您在运行时创建对话框,而不是依赖于在资源编辑器中预定义的对话框模板。以下是 CDialog 类的 Create 方法的声明:virtual BOOL Create( LPCTSTR lpszTemplateName, CWnd* pParentWnd = NULL);该方法接受两个参数: lpszTemplateName:一个字符串,表示对话框模板的名称或 ID。 pParentWnd:一个可选的指向父窗口的指针。使用这个方法,您可以在运行时创建一个对话框,而不需要在资源编辑器中定义对话框模板。以下是一个简单的示例,演示如何使用 Create 方法:// MyDialog.h#pragma once#include "afxwin.h"class CMyDialog : public CDialog{public: CMyDialog(CWnd* pParent = null...
MFC CDialog 类 公共构造函数:CDialog::CDialog
在 MFC(Microsoft Foundation Classes)中,CDialog 类是用于创建对话框的基类之一。CDialog 的公共构造函数通常用于初始化对话框的各种属性和成员变量。以下是 CDialog 类的标准构造函数的声明:CDialog();这是一个无参数的构造函数,通常用于创建 CDialog 类的对象。在构造函数中,会进行对话框的初始化工作。如果您需要传递其他参数给构造函数,可以派生自 CDialog 类,并在派生类中添加相应的构造函数。以下是一个简单的示例,演示了如何使用 CDialog 类的构造函数:// MyDialog.h#pragma once#include "afxwin.h"class CMyDialog : public CDialog{public: CMyDialog(UINT nIDTemplate, CWnd* pParent = nullptr); // 添加带参数的构造函数 // Dialog Data #ifdef AFX_DESIGN_TIME enum { IDD = IDD_...
MFC CDHtmlDialog 类 公共数据成员:CDHtmlDialog::m_strCurrentUrl
在MFC(Microsoft Foundation Classes)中,CDHtmlDialog 类的公共数据成员 m_strCurrentUrl 是一个字符串,用于存储当前 HTML 对话框所显示的 URL 地址。通过访问 m_strCurrentUrl,您可以获取或设置 HTML 对话框当前显示的 URL。这对于在运行时跟踪和处理当前 HTML 页面的地址非常有用。以下是一个简单的示例,演示了如何在 CDHtmlDialog 类中使用 m_strCurrentUrl:// MyHtmlDialog.h#pragma once#include "afxhtml.h"class CMyHtmlDialog : public CDHtmlDialog{public: enum { IDD = IDD_MYHTMLDIALOG, IDH = IDR_HTML_MYHTMLDIALOG }; CMyHtmlDialog(CWnd* pParent = nullptr); // Dialog Data #ifdef AFX_DESIGN_TIME ...