MFC CWnd 类 公共方法:CWnd::NotifyWinEvent
在MFC中,CWnd::NotifyWinEvent 并不是 CWnd 类的直接成员方法。实际上,NotifyWinEvent 是 Windows API 中的函数,用于通知系统事件。如果你想在MFC应用程序中使用该函数,你可以通过以下方式调用:BOOL NotifyWinEvent( DWORD event, HWND hwnd, LONG idObject, LONG idChild); event: 指定要通知的事件,例如 EVENT_OBJECT_NAMECHANGE。 hwnd: 指定与事件相关的窗口句柄。 idObject: 指定对象的标识,例如 OBJID_WINDOW。 idChild: 指定对象的子部分标识,通常为 CHILDID_SELF。以下是一个简单的示例,演示如何使用 NotifyWinEvent 函数:// 通知系统事件,告知窗口的名称已经改变NotifyWinEvent(EVENT_OBJECT_NAMECHANGE, m_hWnd, OBJID_WINDOW, CHILDID_SELF);请注意,虽然 NotifyWinEvent 函数并...
MFC CWnd 类 公共方法:CWnd::MoveWindow
CWnd::MoveWindow 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于移动和调整窗口的位置和大小。该方法的声明如下:BOOL MoveWindow( int x, int y, int nWidth, int nHeight, BOOL bRepaint = TRUE);这个方法接受四个必需的参数:新的左上角 x 坐标(x)、y 坐标(y)、宽度(nWidth)和高度(nHeight)。另外还有一个可选的参数 bRepaint,用于指定是否重绘窗口,默认值为 TRUE。以下是一个简单的示例,演示如何使用 MoveWindow 方法:// 移动窗口到新的位置 (100, 100) 并设置宽度和高度为 200x150MoveWindow(100, 100, 200, 150);// 移动窗口但不重绘MoveWindow(50, 50, 300, 200, FALSE);上述代码中,第一行调用 MoveWindow 移动窗口到坐标 (100, 100),并设置宽度和高度为 200x150。第二行示例中,除了移动窗口到...
MFC CWnd 类 公共方法:CWnd::ModifyStyleEx
CWnd::ModifyStyleEx 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于修改窗口的扩展样式。该方法的声明如下:void ModifyStyleEx( DWORD dwRemove, DWORD dwAdd, UINT nFlags = 0);这个方法允许你在运行时更改窗口的扩展样式。参数包括要移除的扩展样式位(dwRemove)、要添加的扩展样式位(dwAdd),以及可选的标志位(nFlags)。以下是一个简单的示例,演示如何使用 ModifyStyleEx 方法:// 移除 WS_EX_CLIENTEDGE 扩展样式位ModifyStyleEx(WS_EX_CLIENTEDGE, 0);// 添加 WS_EX_TOOLWINDOW 扩展样式位ModifyStyleEx(0, WS_EX_TOOLWINDOW);上述代码中,第一行使用 ModifyStyleEx 移除了窗口的客户区边框 (WS_EX_CLIENTEDGE) 扩展样式位,第二行添加了工具窗口样式 (WS_EX_TOOLWINDOW) 扩展样式位。需要...
MFC CWnd 类 公共方法:CWnd::ModifyStyle
CWnd::ModifyStyle 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于修改窗口的样式。该方法的声明如下:void ModifyStyle( DWORD dwRemove, DWORD dwAdd, UINT nFlags = 0);这个方法允许你在运行时更改窗口的样式。参数包括要移除的样式位(dwRemove)、要添加的样式位(dwAdd),以及可选的标志位(nFlags)。下面是一个简单的示例,演示如何使用 ModifyStyle 方法:// 移除 WS_MAXIMIZEBOX 和 WS_MINIMIZEBOX 样式位ModifyStyle(WS_MAXIMIZEBOX | WS_MINIMIZEBOX, 0);// 添加 WS_BORDER 样式位ModifyStyle(0, WS_BORDER);上述代码中,第一行使用 ModifyStyle 移除了窗口的最大化按钮 (WS_MAXIMIZEBOX) 和最小化按钮 (WS_MINIMIZEBOX) 样式位,第二行添加了窗口的边框 (WS_BORDER) 样式位。...
MFC CWnd 类 公共方法:CWnd::MessageBox
CWnd::MessageBox 方法是 MFC(Microsoft Foundation Classes)中的一个成员函数,用于在窗口对象上显示消息框。该方法的声明如下:int MessageBox( LPCTSTR lpszText, LPCTSTR lpszCaption = NULL, UINT nType = MB_OK);这个方法用于在窗口对象上显示一个消息框,参数包括要显示的消息文本(lpszText)、消息框标题(lpszCaption,可选,默认为 NULL)、消息框的类型(nType,可选,默认为 MB_OK)。以下是一个简单的示例:// 在当前窗口对象上显示一个简单的消息框int result = MessageBox(_T("这是一个简单的消息框示例。"), _T("提示"), MB_OK);// 处理用户的响应if (result == IDOK) { // 用户点击了确定按钮 // 在这里添加相应的处理逻辑} else if (result == IDCANCEL) { // 用户点击了取...
MFC CWnd 类 公共方法:CWnd::MapWindowPoints
CWnd::MapWindowPoints 是 MFC 中 CWnd 类的一个公共方法,用于在窗口之间映射客户区坐标。具体的用法如下:BOOL MapWindowPoints(HWND hWndTo, LPPOINT lpPoints, UINT nCount) const;BOOL MapWindowPoints(CWnd* pWndTo, LPPOINT lpPoints, UINT nCount) const;BOOL MapWindowPoints(HWND hWndTo, LPRECT lpRect) const;BOOL MapWindowPoints(CWnd* pWndTo, LPRECT lpRect) const;这个方法用于将一个或多个客户区坐标从调用窗口映射到目标窗口或反之。提供了两种不同的重载方式,可以接受目标窗口的 HWND 或者 CWnd*。例子:CPoint pt(10, 20);CRect rect(0, 0, 100, 100);// 映射客户区坐标MapWindowPoints(pOtherWnd, &pt, 1);// 映射客户区矩形Ma...
MFC CWnd 类 公共方法:CWnd::LockWindowUpdate
CWnd::LockWindowUpdate 是 MFC 中 CWnd 类的一个公共方法,用于锁定或解锁窗口的更新。具体的用法如下:BOOL LockWindowUpdate(BOOL bLock = TRUE);这个方法接受一个 BOOL 参数 bLock,如果 bLock 为非零值(默认为 TRUE),则表示锁定窗口更新,禁止刷新窗口内容;如果 bLock 为零值,则表示解锁窗口更新,允许刷新窗口内容。例子:// 锁定窗口更新LockWindowUpdate(TRUE);// 执行一些操作,此时窗口不会被刷新// 解锁窗口更新LockWindowUpdate(FALSE);在这个例子中,LockWindowUpdate(TRUE) 用于锁定窗口更新,然后执行一些操作,这期间窗口不会被刷新。最后,通过 LockWindowUpdate(FALSE) 解锁窗口更新,允许窗口刷新。这种方法通常用于避免在执行一系列操作时频繁刷新窗口。
MFC CWnd 类 公共方法:CWnd::KillTimer
CWnd::KillTimer 是 MFC 中 CWnd 类的一个公共方法,用于停止一个定时器。具体的用法如下:BOOL KillTimer(UINT_PTR nIDEvent);这个方法接受一个参数 nIDEvent,表示要停止的定时器的标识符。如果成功停止定时器,则返回非零值;否则返回零。例子:// 在窗口创建或初始化过程中设置定时器SetTimer(ID_TIMER_EVENT, 1000, NULL);// 在需要停止定时器的地方调用 KillTimerKillTimer(ID_TIMER_EVENT);在这个例子中,SetTimer 用于创建一个定时器,KillTimer 用于停止这个定时器。在实际应用中,通常在需要停止定时器的地方调用 KillTimer 方法。
MFC CWnd 类 公共方法:CWnd::IsZoomed
CWnd::IsZoomed 是 MFC 中 CWnd 类的一个公共方法,用于检查窗口是否处于最大化状态。具体的用法如下:BOOL IsZoomed() const;这个方法返回一个 BOOL 值,如果窗口最大化,则返回非零值;如果窗口不是最大化状态,则返回零。例子:if (IsZoomed()) { // 窗口处于最大化状态 // 执行相应的操作} else { // 窗口不是最大化状态 // 执行相应的操作}在这个例子中,IsZoomed 方法用于检查窗口是否处于最大化状态,然后根据结果执行相应的操作。
MFC CWnd 类 公共方法:CWnd::IsWindowVisible
CWnd::IsWindowVisible 是 MFC 中 CWnd 类的一个公共方法,用于检查窗口是否可见。具体的用法如下:BOOL IsWindowVisible() const;这个方法返回一个 BOOL 值,如果窗口可见,则返回非零值;如果窗口不可见,则返回零。例子:if (IsWindowVisible()) { // 窗口可见 // 执行相应的操作} else { // 窗口不可见 // 执行相应的操作}在这个例子中,IsWindowVisible 方法用于检查窗口是否可见,然后根据结果执行相应的操作。
MFC CWnd 类 公共方法:CWnd::IsWindowEnabled
CWnd::IsWindowEnabled 是 MFC 中 CWnd 类的一个公共方法,用于检查窗口是否启用(可用)。具体的用法如下:BOOL IsWindowEnabled() const;这个方法返回一个 BOOL 值,如果窗口启用(可用),则返回非零值;如果窗口未启用,则返回零。例子:if (IsWindowEnabled()) { // 窗口启用 // 执行相应的操作} else { // 窗口未启用 // 执行相应的操作}在这个例子中,IsWindowEnabled 方法用于检查窗口是否启用,然后根据结果执行相应的操作。
MFC CWnd 类 公共方法:CWnd::IsTouchWindow
CWnd::IsTouchWindow 是 MFC 中 CWnd 类的一个公共方法,用于检查窗口是否启用了触摸输入支持。具体的用法如下:BOOL IsTouchWindow(HTOUCHINPUT hTouchInput = NULL) const;这个方法返回一个 BOOL 值,如果窗口启用了触摸输入支持,则返回非零值;否则返回零。如果提供 hTouchInput 参数,它将用于指定触摸输入的句柄。通常,您可以在处理触摸输入的消息时使用该方法来确定是否启用了触摸支持。例子:if (IsTouchWindow()) { // 窗口启用了触摸输入支持 // 执行相应的操作} else { // 窗口未启用触摸输入支持 // 执行相应的操作}在这个例子中,IsTouchWindow 方法用于检查窗口是否启用了触摸输入支持,然后根据结果执行相应的操作。
MFC CWnd 类 公共方法:CWnd::IsIconic
CWnd::IsIconic 是 MFC 中 CWnd 类的一个公共方法,用于检查窗口是否处于最小化状态(图标化)。具体的用法如下:BOOL IsIconic() const;这个方法返回一个 BOOL 值,如果窗口最小化,则返回非零值;如果窗口不是最小化状态,则返回零。例子:if (IsIconic()) { // 窗口处于最小化状态 // 执行相应的操作} else { // 窗口不是最小化状态 // 执行相应的操作}在这个例子中,IsIconic 方法用于检查窗口是否处于最小化状态,然后根据结果执行相应的操作。
MFC CWnd 类 公共方法:CWnd::IsDlgButtonChecked
CWnd::IsDlgButtonChecked 是 MFC 中 CWnd 类的一个公共方法,用于获取指定单选按钮或复选按钮的当前选中状态。具体的用法如下:UINT IsDlgButtonChecked(int nIDButton) const;这个方法接受一个参数 nIDButton,它是单选按钮或复选按钮的控件标识符(ID)。方法返回一个 UINT 值,表示按钮的状态。可能的返回值包括: BST_UNCHECKED:按钮未选中。 BST_CHECKED:按钮已选中。 BST_INDETERMINATE:按钮处于不确定状态(通常在三态复选框中使用)。例子:UINT nState = IsDlgButtonChecked(IDC_MY_CHECKBOX); // 获取复选框的状态if (nState == BST_CHECKED) { // 复选框已选中} else if (nState == BST_UNCHECKED) { // 复选框未选中} else if (nState == BST_INDETERMINATE) { // 复选框处于不确定状态}在这个例子...
MFC CWnd 类 公共方法:CWnd::IsDialogMessage
CWnd::IsDialogMessage 是 MFC 中 CWnd 类的一个公共方法,它用于在模态对话框中处理消息循环,通常与 TranslateMessage 和 DispatchMessage 配合使用。具体的用法如下:BOOL IsDialogMessage(LPMSG lpMsg);这个方法通常用于在消息循环中处理特殊的对话框消息,例如按下 TAB 键时切换焦点。IsDialogMessage 函数会处理这些消息并返回一个布尔值,指示是否成功处理消息。如果消息被处理,函数返回非零值,否则返回零。例子:MSG msg;while (GetMessage(&msg, NULL, 0, 0)) { if (!IsDialogMessage(&msg)) { TranslateMessage(&msg); DispatchMessage(&msg); }}在这个例子中,IsDialogMessage 用于处理对话框消息,如果消息不是对话框消息,则继续翻译并分发消息。这是一个常见的消息循环结构,特别适用于模态对话框...
MFC CWnd 类 公共方法:CWnd::IsChild
具体的用法如下:BOOL IsChild(const CWnd* pWnd) const;这个方法返回一个 BOOL 值,指示指定的窗口是否是当前窗口的子窗口。如果是子窗口,返回非零值;如果不是子窗口,返回零。例子:CWnd* pChildWnd = GetDlgItem(IDC_MY_CHILD_CONTROL); // 获取子控件指针if (pChildWnd != nullptr) { if (IsChild(pChildWnd)) { // pChildWnd 是当前窗口的子窗口 // 执行相应的操作 } else { // pChildWnd 不是当前窗口的子窗口 // 执行相应的操作 }}在这个例子中,GetDlgItem 用于获取具有指定 ID 的子控件的指针,然后通过调用 IsChild 方法判断该控件是否是当前窗口的子窗口。
MFC CWnd 类 公共方法:CWnd::InvalidateRgn
CWnd::InvalidateRgn 是 MFC 中 CWnd 类的一个公共方法,用于使指定的区域(CRgn 对象)无效,从而触发重绘。具体的用法如下:BOOL InvalidateRgn(CRgn* pRgn, BOOL bErase = TRUE);这个方法通常在需要更新窗口的特定区域时调用。参数 pRgn 是一个指向 CRgn 对象的指针,表示要使之无效的区域。参数 bErase 控制是否擦除指定区域的背景。例子:CRgn myRgn;myRgn.CreateEllipticRgn(10, 10, 100, 100); // 创建一个椭圆形区域InvalidateRgn(&myRgn); // 使椭圆形区域无效,需要在合适的时机调用在这个例子中,CRgn 被用来创建一个椭圆形区域,然后调用 InvalidateRgn 方法使该椭圆形区域无效,从而触发重绘。
MFC CWnd 类 公共方法:CWnd::InvalidateRect
具体的用法如下:void InvalidateRect(const RECT* lpRect = NULL, BOOL bErase = TRUE);这个方法通常在需要更新窗口部分区域的内容时调用。参数 lpRect 指定要使之无效的矩形区域,如果为 NULL,则表示整个客户区域。参数 bErase 控制是否擦除指定区域的背景。例子:CRect rect(10, 10, 100, 100); // 定义一个矩形区域InvalidateRect(&rect); // 使矩形区域无效,需要在合适的时机调用在这个例子中,CRect 用于定义一个矩形区域,然后调用 InvalidateRect 方法使该矩形区域无效,从而触发重绘。
MFC CWnd 类 公共方法:CWnd::Invalidate
具体的用法如下:void Invalidate(BOOL bErase = TRUE);这个方法通常在需要更新窗口内容时调用。参数 bErase 控制是否擦除窗口背景。如果设置为 TRUE,则会擦除窗口背景;如果设置为 FALSE,则不会擦除窗口背景。例子:CWnd* pWnd = GetDlgItem(IDC_MY_CONTROL); // 获取控件指针if (pWnd != nullptr) { pWnd->Invalidate(); // 使控件无效,需要在合适的时机调用}在这个例子中,GetDlgItem 用于获取窗口中具有指定ID的子控件的指针,然后调用 Invalidate 方法使该控件无效,从而触发重绘。
MFC CWnd 类 公共方法:CWnd::HideCaret
CWnd::HideCaret 是 MFC(Microsoft Foundation Classes)中 CWnd 类的一个公共方法,用于隐藏输入焦点的光标(caret)。具体用法如下:void HideCaret();这个方法通常在窗口失去焦点时调用,以隐藏输入焦点的光标。在实际应用中,可以在相应的事件处理函数中调用这个方法,比如在 OnKillFocus 中:void CYourWndClass::OnKillFocus(CWnd* pNewWnd){ CWnd::OnKillFocus(pNewWnd); // 隐藏输入焦点的光标 HideCaret();}在这个例子中,CYourWndClass 是你的窗口类,OnKillFocus 是窗口失去焦点时的事件处理函数。在该函数中,调用 HideCaret 方法来隐藏输入焦点的光标。