MFC CWnd 类 公共方法:CWnd::DlgDirList
在 MFC(Microsoft Foundation Classes)的 CWnd 类中,确实存在名为 DlgDirList 的公共方法。这个方法用于在对话框中列出指定路径下的文件和目录。以下是 CWnd::DlgDirList 方法的声明:int DlgDirList( LPTSTR lpPathSpec, int nIDListBox, int nIDStaticPath, UINT nFileType);参数说明如下: lpPathSpec:一个字符串,用于指定要列出的目录路径。 nIDListBox:指定对话框上的列表框控件的标识符。 nIDStaticPath:指定对话框上的静态文本框控件的标识符,用于显示当前目录路径。 nFileType:指定要列出的文件类型,可以是文件过滤器标志,例如 DOS_ATTRIB_READONLY、DOS_ATTRIB_HIDDEN 等。这个方法返回一个整数,表示列出的文件和目录的数量。使用示例:// 在对话框类的成员函数中调用 DlgDirListvoid CYourDialogClass::ListFilesAndD...
MFC CWnd 类 公共方法:CWnd::Detach
在 MFC(Microsoft Foundation Classes)的 CWnd 类中,确实存在名为 Detach 的公共方法。这个方法用于将 CWnd 对象与底层的窗口句柄解绑,释放对窗口资源的管理。以下是 CWnd::Detach 方法的声明:HWND Detach();Detach 方法返回窗口句柄 (HWND),并且在返回之前,将 CWnd 对象的内部状态置为空。通过调用 Detach,你可以获取到窗口句柄,同时 CWnd 对象不再管理该窗口。使用示例:// 在某个 CWnd 派生类的成员函数中调用 Detachvoid CYourWndClass::DetachMyWindow(){ // 调用 Detach 函数 HWND hWnd = Detach(); // 现在 hWnd 包含了窗口句柄,而 CYourWndClass 不再管理该窗口}一般来说,Detach 方法在需要将 MFC 对象和原始窗口句柄分离时使用。例如,当你希望在 MFC 对象的生命周期结束时,但不希望销毁窗口时,可以使用 Detach。
MFC CWnd 类 公共方法:CWnd::DestroyWindow
BOOL DestroyWindow();DestroyWindow 通常在程序中调用以关闭或销毁窗口。这个方法会发送 WM_DESTROY 消息,触发窗口的销毁过程。使用示例:// 在某个 CWnd 派生类的成员函数中调用 DestroyWindowvoid CYourWndClass::DestroyMyWindow(){ // 调用 DestroyWindow 函数 DestroyWindow();}这样调用后,窗口就会被销毁。在实际应用中,通常是在用户关闭窗口或者程序退出时调用 DestroyWindow。
MFC CWnd 类 公共方法:CWnd::CreateSolidCaret
在 MFC(Microsoft Foundation Classes)的 CWnd 类中,确实存在名为 CreateSolidCaret 的公共方法。这个方法用于创建一个实心光标。以下是 CreateSolidCaret 方法的声明:BOOL CreateSolidCaret(int nWidth, int nHeight);参数说明如下: nWidth:实心光标的宽度。 nHeight:实心光标的高度。这个方法返回一个布尔值,表示实心光标是否成功创建。使用示例:// 在某个 CWnd 派生类的成员函数中调用 CreateSolidCaretvoid CYourWndClass::CreateMySolidCaret(){ // 根据实际情况设置实心光标的宽度和高度 int nWidth = /* 实心光标的宽度 */; int nHeight = /* 实心光标的高度 */; // 调用 CreateSolidCaret 函数 BOOL bResult = CreateSolidCaret(nWidth, nHeight); if (bResult...
MFC CWnd 类 公共方法:CWnd::CreateEx
CWnd::CreateEx 是 MFC(Microsoft Foundation Classes)中的一个成员函数,用于创建窗口并指定扩展风格。这个函数的声明如下:BOOL CreateEx( DWORD dwExStyle, LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, int x, int y, int nWidth, int nHeight, HWND hWndParent, HMENU nIDorHMenu = 0, LPVOID lpParam = NULL);参数说明如下: dwExStyle: 扩展窗口风格。 lpszClassName: 要创建窗口的窗口类名。 lpszWindowName: 窗口的标题。 dwStyle: 窗口风格。 x, y: 窗口的初始横纵坐标。 nWidth, nHeight: 窗口的初始宽度和高度。 hWndParent: 父窗口句柄。 nIDorHMenu: 窗口标识符或者菜单句柄。 lpParam: 传递给窗口的额外参数...
MFC CWnd 类 公共方法:CWnd::CreateControl
CWnd::CreateControl 是 MFC(Microsoft Foundation Classes)中的一个成员函数,用于创建 ActiveX 控件并将其嵌入到窗口中。这个函数的声明如下:BOOL CreateControl( REFCLSID clsid, LPCTSTR pszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CFile* pPersist = NULL, BOOL bStorage = FALSE, BSTR bstrLicKey = NULL);参数说明如下: clsid: ActiveX 控件的 CLSID(Class ID)。 pszWindowName: 控件的窗口名,可以是控件的类名。 dwStyle: 控件的窗口风格。 rect: 控件的矩形区域。 pParentWnd: 控件的父窗口。 nID: 控件的标识符。 pPersist: 用于加载或保存控件状态的持久性对象(通常为 NULL)...
MFC CWnd 类 公共方法:CWnd::CreateCaret
CWnd::CreateCaret 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于创建光标(caret)。光标是一个闪烁的矩形,用于指示用户文本输入的位置。通常情况下,你会在文本编辑控件中使用它。函数原型如下:BOOL CWnd::CreateCaret(CBitmap* pBitmap);BOOL CWnd::CreateCaret(int nWidth, int nHeight); pBitmap:指向 CBitmap 对象的指针,表示用于创建光标的位图。可以为 NULL,表示使用系统默认的光标。 nWidth:光标的宽度(以像素为单位)。 nHeight:光标的高度(以像素为单位)。使用 CreateCaret 方法可以在窗口上创建光标,并设置光标的属性,例如大小和形状。通常,你需要在显示文本输入区域时调用此方法。以下是一个简单的示例,演示如何使用 CreateCaret:// 在需要创建光标的时候调用void CMyWnd::CreateCustomCaret(){ // 创建光标,指定宽度和高度 CreateCaret...
MFC CWnd 类 公共方法:CWnd::Create
CWnd::Create 是 MFC(Microsoft Foundation Classes)中的一个重要的公共方法,用于创建窗口。函数原型如下:BOOL CWnd::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL); lpszClassName:窗口类的名称。 lpszWindowName:窗口的标题。 dwStyle:窗口的样式,例如 WS_OVERLAPPEDWINDOW。 rect:窗口的初始位置和大小。 pParentWnd:父窗口的指针,如果为 NULL,则表示没有父窗口。 nID:窗口的 ID。 pContext:创建上下文,可以为 NULL。Create 方法用于创建并显示一个窗口。它是 MFC 窗口类的主要创建函数之一。通常,你会在派生自 CWnd 的窗口类中的构造函数或初始化函数中...
MFC CWnd 类 公共方法:CWnd::ClientToScreen
CWnd::ClientToScreen 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于将客户区坐标转换为屏幕坐标。这个方法允许你在窗口的客户区坐标系和屏幕坐标系之间进行转换。函数原型如下:void CWnd::ClientToScreen(LPPOINT lpPoint) const;void CWnd::ClientToScreen(LPRECT lpRect) const; lpPoint:指向 POINT 结构的指针,表示客户区坐标。此函数将在返回时修改该结构,使其包含相应的屏幕坐标。 lpRect:指向 RECT 结构的指针,表示客户区坐标的矩形。此函数将在返回时修改该结构,使其包含相应的屏幕坐标。这个方法通常在需要将窗口内部的相对坐标转换为全局屏幕坐标时使用。例如,你可能需要在窗口中的某个特定区域上显示一个弹出菜单,而菜单的位置是相对于整个屏幕的。以下是一个简单的示例,演示了如何使用 ClientToScreen:// 在某个成员函数中调用void CMyWnd::OnContextMenu(CWnd* pWnd, CPoint...
MFC CWnd 类 公共方法:CWnd::ChildWindowFromPoint
在 MFC(Microsoft Foundation Classes)中,CWnd::ChildWindowFromPoint 是一个公共方法,用于获取指定点下的子窗口句柄。这个方法返回位于指定点下的子窗口的 CWnd 对象指针。函数原型如下:CWnd* CWnd::ChildWindowFromPoint(CPoint point); point:要查询的点的坐标。这个方法通常用于确定在窗口客户区中的特定坐标下是否存在子窗口。如果存在子窗口,它将返回相应的 CWnd 对象指针。如果没有找到子窗口,则返回 NULL。以下是一个简单的示例,演示了如何使用 ChildWindowFromPoint:// 在某个成员函数中调用void CMyWnd::OnLButtonDown(UINT nFlags, CPoint point){ // 调用 ChildWindowFromPoint 获取指定点下的子窗口 CWnd* pChildWnd = ChildWindowFromPoint(point); if (pChildWnd != NULL) { //...
MFC CWnd 类 公共方法:CWnd::CheckRadioButton
在 MFC(Microsoft Foundation Classes)中,CWnd::CheckRadioButton 是一个公共方法,用于在对话框中设置一组单选按钮的选中状态。它主要用于在一组单选按钮中选中一个,并取消选中其他按钮。函数原型如下:void CWnd::CheckRadioButton(int nIDFirstButton, int nIDLastButton, int nIDCheckButton); nIDFirstButton:指定要设置状态的单选按钮组的第一个按钮的控件 ID。 nIDLastButton:指定要设置状态的单选按钮组的最后一个按钮的控件 ID。 nIDCheckButton:指定要设置为选中状态的单选按钮的控件 ID。这个方法通常用于处理一组单选按钮的选择。在用户与对话框进行交互时,你可以使用 CheckRadioButton 来设置相应按钮的选中状态。以下是一个简单的示例,演示了如何使用 CheckRadioButton:// 在对话框类中的某个成员函数中调用void CMyDialog::OnRadioButtonClicked(){ ...
MFC CWnd 类 公共方法:CWnd::CheckDlgButton
在 MFC(Microsoft Foundation Classes)中,CWnd::CheckDlgButton 是一个公共方法,用于设置或清除对话框中的单选按钮(Radio Button)或复选框(Check Box)的选中状态。函数原型如下:BOOL CWnd::CheckDlgButton(int nIDButton, UINT nCheck); nIDButton:指定要设置或清除状态的单选按钮或复选框的控件 ID。 nCheck:指定要设置的状态。可以是以下值之一: - BST_UNCHECKED:取消选中。 - BST_CHECKED:选中。 - BST_INDETERMINATE:设置为不确定状态(仅适用于复选框)。这个方法通常用于在对话框中操作单选按钮或复选框的状态,以便在用户与对话框进行交互时更改其状态。以下是一个简单的示例,演示了如何使用 CheckDlgButton:// 在对话框类中的某个成员函数中调用void CMyDialog::OnButtonClicked(){ // 假设 IDC_CHECK1 是一个复选框的控件 ID int nI...
MFC CWnd 类 公共方法:CWnd::ChangeClipboardChain
在 MFC(Microsoft Foundation Classes)中,CWnd::ChangeClipboardChain 是一个公共方法,用于处理剪贴板链的改变。具体而言,它是处理 WM_CHANGECBCHAIN 消息的方法,以通知窗口系统剪贴板链的变化。函数原型如下:BOOL CWnd::ChangeClipboardChain(HWND hWndNext); hWndNext:下一个窗口的句柄,用于接收 WM_CHANGECBCHAIN 消息。通常,这是在剪贴板链中的下一个窗口。使用这个方法时,通常是在 WM_CHANGECBCHAIN 消息的处理函数中调用,以便在剪贴板链中传递通知。以下是一个简单的示例,演示了如何在 MFC 中使用 ChangeClipboardChain:// 响应 WM_CHANGECBCHAIN 消息的处理函数void CMyWnd::OnChangeCbChain(HWND hWndRemove, HWND hWndAfter){ CWnd::OnChangeCbChain(hWndRemove, hWndAfter); // 在这里...
MFC CWnd 类 公共方法:CWnd::CenterWindow
CWnd::CenterWindow 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于将窗口居中显示在屏幕或者指定父窗口的中央位置。函数原型如下:void CWnd::CenterWindow(CWnd* pAlternateOwner = NULL); pAlternateOwner:一个可选的参数,指定一个替代的父窗口。如果为 NULL,则默认使用父窗口。这个方法将调整窗口的位置,使得窗口的中心与指定父窗口或者屏幕的中心对齐。通常,在创建窗口后,你可以调用 CenterWindow 方法来确保窗口以合适的方式显示在屏幕上。以下是一个简单的示例,演示如何使用 CenterWindow:// 在窗口创建后,调用 CenterWindow 来将窗口居中显示BOOL CMyWnd::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateConte...
MFC CWnd 类 公共方法:CWnd::CalcWindowRect
CWnd::CalcWindowRect 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于计算窗口客户区的矩形(在不包括边框的情况下)以及窗口整体的矩形(包括边框)。函数原型如下:void CWnd::CalcWindowRect(LPRECT lpClientRect, UINT nAdjustType = adjustBorder); lpClientRect:一个指向 RECT 结构的指针,用于接收计算得到的客户区矩形。这个矩形不包括窗口的边框。 nAdjustType:一个可选的参数,指定计算类型。默认值是 adjustBorder,表示计算整个窗口的矩形,包括边框。你也可以使用 adjustOutside 或 adjustInside,分别表示计算整个窗口矩形(包括边框)、或仅计算客户区矩形。这个方法通常在窗口创建时,用于计算窗口客户区的大小或者整体窗口的大小。以下是一个简单的示例,演示如何使用 CalcWindowRect:CWnd myWnd;RECT rectClient;RECT rectWindow;// 假设有一个初始的...
MFC CWnd 类 公共方法:CWnd::BringWindowToTop
CWnd::BringWindowToTop 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于将窗口置于窗口顺序的顶部。这个方法会将指定的窗口移到 Z 顺序的顶部,即显示在其他窗口的前面。函数原型如下:void CWnd::BringWindowToTop();这个方法通常在需要确保某个窗口在屏幕上的显示顺序时使用。例如,在用户与应用程序进行交互时,你可能会使用 BringWindowToTop 来确保相关的窗口显示在其他窗口之上。以下是一个简单的示例,演示如何在 MFC 中使用 BringWindowToTop:// 假设有一个 CWnd 对象,可以是对话框或其他窗口CWnd myWnd;// 在需要的时候调用 BringWindowToTop,将窗口置于顶部myWnd.BringWindowToTop();请注意,这个方法只会将窗口置于 Z 顺序的顶部,但不会改变窗口的大小或位置。如果需要调整窗口的大小或位置,可以使用其他相应的方法,例如 MoveWindow。
MFC CWnd 类 公共方法:CWnd::BeginPaint
CWnd::BeginPaint 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于开始窗口的绘制操作。这个方法通常与 CWnd::EndPaint 配合使用,用于在窗口的绘制过程中获得设备上下文(Device Context)。函数原型如下:CPaintDC* CWnd::BeginPaint(LPPAINTSTRUCT lpPaint); lpPaint 是一个指向 PAINTSTRUCT 结构的指针,它用于接收有关绘制过程的信息,如绘制的矩形区域等。使用 BeginPaint 函数时,通常会按照以下方式进行:void CMyWnd::OnPaint(){ CPaintDC dc(this); // 构造一个 CPaintDC 对象,它会调用 BeginPaint // 在这里进行绘制操作,使用 dc 进行绘图 // 自动调用 EndPaint,释放相关资源}在 OnPaint 处理函数中,创建一个 CPaintDC 对象,这将调用 BeginPaint。在对象的生命周期结束时,CPaintDC 析构函数会自动调用 End...
MFC CWnd 类 公共方法:CWnd::Attach
CWnd::Attach 是 MFC 中 CWnd 类的一个公共方法,用于将一个窗口句柄(HWND)与 CWnd 对象关联起来。这个方法的作用是将已经存在的窗口与 MFC 中的 CWnd 对象进行绑定,使得你可以通过 CWnd 对象来操作该窗口。函数原型如下:void CWnd::Attach(HWND hWndNew);其中,hWndNew 是要关联的窗口句柄。使用 Attach 的主要场景是在已有的窗口上创建 MFC CWnd 对象。这通常在子类中使用,以便在 MFC 框架中使用 Windows 控件或者扩展功能。以下是一个简单的示例,展示了如何使用 Attach 方法:// 假设有一个已存在的窗口句柄 hWndExistingHWND hWndExisting = ::CreateWindowEx(0, _T("STATIC"), _T("Hello, World!"), WS_OVERLAPPEDWINDOW, 100, 100, 400, 200, NULL, NUL...
MFC CWnd 类 公共方法:CWnd::ArrangeIconicWindows
CWnd::ArrangeIconicWindows 是 MFC 中 CWnd 类的一个公共方法,用于排列图标化的窗口。这个方法的作用是将所有图标化的子窗口按照一定的规则排列。具体来说,它会根据图标化窗口的布局,将它们以一种有序的方式排列。函数原型如下:void CWnd::ArrangeIconicWindows();这个方法在应用程序需要调整和排列图标化窗口时非常有用。通过调用这个函数,可以确保图标化的窗口以一种整齐有序的方式显示在屏幕上,提高用户体验。例如,你可以在窗口的消息处理函数中调用这个方法,以响应窗口最小化时的事件,从而在最小化后自动排列图标。// 处理窗口最小化的消息void CMyWnd::OnSysCommand(UINT nID, LPARAM lParam){ if ((nID & 0xFFF0) == SC_MINIMIZE) { // 最小化时调用 ArrangeIconicWindows ArrangeIconicWindows(); } else { // 其他系统命令,使用...
MFC CWnd 类 公共方法:CWnd::AnimateWindow
在 MFC(Microsoft Foundation Classes)中,CWnd::AnimateWindow 是一个公共方法,用于实现窗口的动画效果。这个方法通常用于创建和销毁窗口时实现平滑的显示和隐藏效果。以下是 CWnd::AnimateWindow 的语法:BOOL AnimateWindow( DWORD dwTime, DWORD dwFlags); dwTime 参数是动画持续的时间,以毫秒为单位。 dwFlags 参数是一个标志,指定动画效果的类型,可以是以下常量之一: - AW_HOR_POSITIVE:从左到右展开。 - AW_HOR_NEGATIVE:从右到左展开。 - AW_VER_POSITIVE:从上到下展开。 - AW_VER_NEGATIVE:从下到上展开。 - AW_CENTER:从中心展开或折叠。 - AW_BLEND:淡入淡出效果。返回值是一个布尔值,表示操作是否成功。示例用法:// 在窗口类的成员函数中调用BOOL CMyWnd::ShowWithAnimation(){ // 假设 this 是 CWnd 派生类的指...