MFC CWnd 类 公共方法:CWnd::MoveWindow
CWnd::MoveWindow 是 MFC 中用于移动窗口的成员函数。其函数原型如下:BOOL MoveWindow( int x, int y, int nWidth, int nHeight, BOOL bRepaint = TRUE); x 是窗口的新左上角 x 坐标。 y 是窗口的新左上角 y 坐标。 nWidth 是窗口的新宽度。 nHeight 是窗口的新高度。 bRepaint 是一个布尔值,指定在移动窗口后是否应该重绘窗口。如果为 TRUE,窗口将被重绘。这个函数通常在运行时用于更改窗口的位置和大小。例如:// 假设 pWnd 是指向 CWnd 对象的指针pWnd->MoveWindow(100, 100, 300, 200, TRUE); // 移动并重绘窗口上述示例中,MoveWindow 将窗口移动到 (100, 100) 的位置,并设置宽度为 300,高度为 200,然后重绘窗口。需要注意的是,MoveWindow 用于动态调整窗口的位置和大小,不同于创建窗口时指定的初始位置和大小。
MFC CWnd 类 公共方法:CWnd::ModifyStyleEx
在 MFC 中,CWnd::ModifyStyleEx 是用于修改窗口的扩展样式的成员函数。其函数原型如下:void CWnd::ModifyStyleEx( DWORD dwRemove, DWORD dwAdd, UINT nFlags = 0); dwRemove 是要从窗口扩展样式中移除的样式位。 dwAdd 是要添加到窗口扩展样式中的样式位。 nFlags 是一个标志,用于指定样式修改的方式。这个函数允许你在运行时动态地更改窗口的扩展样式。扩展样式通常用于指定窗口的一些高级特性,如透明度、图层样式等。以下是一个简单的示例:// 假设 pWnd 是指向 CWnd 对象的指针pWnd->ModifyStyleEx(WS_EX_CLIENTEDGE, WS_EX_STATICEDGE); // 修改窗口的边框样式上述示例中,ModifyStyleEx 将从窗口的扩展样式中移除 WS_EX_CLIENTEDGE 样式,并添加 WS_EX_STATICEDGE 样式,从而修改窗口的边框样式。需要注意的是,这个函数主要用于对窗口的扩展样式进行动态修改,不同于创建窗口时指...
MFC CWnd 类 公共方法:CWnd::ModifyStyle
在 MFC 中,CWnd::ModifyStyle 是一个用于修改窗口样式的成员函数。其函数原型如下:void CWnd::ModifyStyle( DWORD dwRemove, DWORD dwAdd, UINT nFlags = 0); dwRemove 是要从窗口样式中移除的样式位。 dwAdd 是要添加到窗口样式中的样式位。 nFlags 是一个标志,用于指定样式修改的方式。这个函数允许你在运行时动态地更改窗口的样式。例如,你可以通过这个函数添加或移除 WS_DISABLED 样式位来启用或禁用窗口。以下是一个简单的示例:// 假设 pWnd 是指向 CWnd 对象的指针pWnd->ModifyStyle(WS_DISABLED, 0); // 启用窗口上述示例中,ModifyStyle 将移除 WS_DISABLED 样式,从而启用窗口。需要注意的是,这个函数主要用于对窗口的样式进行动态修改,不同于创建窗口时指定的样式。
MFC CWnd 类 公共方法:CWnd::MessageBox
CWnd::MessageBox 并不是 CWnd 类的直接成员函数。实际上,消息框的创建通常是通过全局的 MessageBox 函数来实现,而不是通过 CWnd 类的成员函数。在 MFC 中,你可以使用以下方式创建消息框:int MessageBox( LPCTSTR lpszText, LPCTSTR lpszCaption = NULL, UINT nType = MB_OK);其中: lpszText 是消息框中显示的文本。 lpszCaption 是消息框的标题栏文本,可以为 NULL。 nType 是消息框的类型,可以通过按位 OR 运算符 (|) 组合多个选项。例如,MB_OK 表示只有一个“确定”按钮,MB_YESNO 表示有“是”和“否”两个按钮。这个函数通常是在窗口类的成员函数中调用的。例如:// 在一个 CWnd 派生类的成员函数中调用void CMyWnd::ShowMessageBox() { MessageBox(_T("Hello, this is a message!"), _T("Message Box&...
MFC CWnd 类 公共方法:CWnd::MapWindowPoints
CWnd::MapWindowPoints 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于将一个或多个点的坐标从一个窗口的客户区坐标系映射到另一个窗口的客户区坐标系。具体的函数原型如下:void CWnd::MapWindowPoints( CWnd* pWndTo, LPPOINT lpPoints, UINT nCount) const; pWndTo 是目标窗口的指针,表示要将坐标映射到哪个窗口。 lpPoints 是一个指向 POINT 结构数组的指针,包含要映射的点的坐标。 nCount 是要映射的点的数量。调用这个方法后,lpPoints 中的坐标将从调用窗口的客户区坐标系映射到目标窗口的客户区坐标系。例如,如果有一个窗口对象 pWnd,你可以这样使用 MapWindowPoints:POINT pt = {10, 20};pWnd->MapWindowPoints(pTargetWnd, &pt, 1);这将把 pt 中的坐标从 pWnd 的客户区坐标系映射到 pTargetWnd 的客户区坐标系...
MFC CWnd 类 公共方法:CWnd::LockWindowUpdate
CWnd::LockWindowUpdate 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于锁定或解锁窗口的更新。该方法的作用是防止窗口的重绘操作,直到调用 LockWindowUpdate 的窗口再次调用该方法并传递 NULL 参数为止。具体而言,CWnd::LockWindowUpdate 的原型如下:BOOL LockWindowUpdate(BOOL bLock); 参数 bLock 为 TRUE 时表示锁定窗口更新,为 FALSE 时表示解锁窗口更新。 返回值为 TRUE 表示成功,FALSE 表示失败。例如,如果你希望暂时锁定窗口的更新,可以在需要的地方调用 LockWindowUpdate(TRUE),然后在完成相关操作后再调用 LockWindowUpdate(FALSE) 来解锁窗口更新。请注意,使用这个方法时需要小心,确保在锁定期间不会导致用户界面出现不良的体验,因为在锁定期间窗口将不会被重绘。
MFC CWnd 类 公共方法:CWnd::KillTimer
CWnd::KillTimer 是 MFC(Microsoft Foundation Classes)中 CWnd 类的一个公共方法,用于停止一个先前由 SetTimer 方法启动的定时器。这个方法的语法如下:BOOL KillTimer( UINT_PTR nIDEvent);参数 nIDEvent 是先前由 SetTimer 分配的定时器标识符。通过调用 KillTimer 方法,你可以停止与指定标识符相关联的定时器。以下是一个简单的例子,演示了如何在 MFC 中使用 SetTimer 和 KillTimer:// 声明一个定时器标识符#define MY_TIMER_ID 1001// 在某个函数中设置定时器void CMyWnd::StartTimer(){ // 启动定时器,每1000毫秒触发一次 SetTimer(MY_TIMER_ID, 1000, nullptr);}// 在某个函数中停止定时器void CMyWnd::StopTimer(){ // 停止定时器 KillTimer(MY_TIMER_ID);}// 处理定时器消息的函数voi...
MFC CWnd 类 公共方法:CWnd::IsZoomed
CWnd::IsZoomed 是 MFC(Microsoft Foundation Classes)中的一个成员函数,用于检查窗口是否处于最大化状态(即是否已经被最大化)。这个函数返回一个 BOOL 类型的值,如果窗口最大化则返回非零值,否则返回零。以下是 CWnd::IsZoomed 的基本用法:BOOL IsWindowZoomed = YourWndObject.IsZoomed();其中,YourWndObject 是你的窗口对象的实例。如果 IsWindowZoomed 为非零,表示窗口当前处于最大化状态;如果为零,表示窗口不是最大化的。这个函数通常用于在程序中根据窗口状态执行相应的操作,例如动态调整界面布局或禁用一些功能。
MFC CWnd 类 公共方法:CWnd::IsWindowVisible
CWnd::IsWindowVisible 是 MFC(Microsoft Foundation Classes)中的 CWnd 类的公共方法之一,用于检查窗口是否可见。以下是该方法的基本信息:BOOL IsWindowVisible() const;返回值: 如果窗口可见,返回值为非零; 如果窗口不可见,返回值为零。使用示例:CWnd* pWnd = ...; // 通过某种方式获取 CWnd 对象的指针if (pWnd->IsWindowVisible()){ // 窗口可见}else{ // 窗口不可见}通过调用 IsWindowVisible 方法,您可以检查窗口是否处于可见状态。这在需要根据窗口可见状态执行不同操作时很有用。
MFC CWnd 类 公共方法:CWnd::IsWindowEnabled
CWnd::IsWindowEnabled 是 MFC(Microsoft Foundation Classes)中的 CWnd 类的公共方法之一,用于检查窗口是否启用。以下是该方法的基本信息:BOOL IsWindowEnabled() const;返回值: 如果窗口启用,返回值为非零; 如果窗口未启用,返回值为零。使用示例:CWnd* pWnd = ...; // 通过某种方式获取 CWnd 对象的指针if (pWnd->IsWindowEnabled()){ // 窗口启用}else{ // 窗口未启用}通过调用 IsWindowEnabled 方法,您可以检查窗口是否处于启用状态。这在需要根据窗口启用状态执行不同操作时很有用。
MFC CWnd 类 公共方法:CWnd::IsIconic
CWnd::IsIconic 是 MFC(Microsoft Foundation Classes)中的 CWnd 类的公共方法之一,用于检查窗口是否处于最小化状态(图标化状态)。以下是该方法的基本信息:BOOL IsIconic() const;返回值: 如果窗口处于最小化状态,返回值为非零; 如果窗口不是最小化状态,返回值为零。使用示例:CWnd* pWnd = ...; // 通过某种方式获取 CWnd 对象的指针if (pWnd->IsIconic()){ // 窗口处于最小化状态}else{ // 窗口不是最小化状态}通过调用 IsIconic 方法,您可以确定窗口当前是否处于最小化状态。这在处理窗口状态变化时可能会很有用,例如在响应最小化按钮点击时执行特定操作。
MFC CWnd 类 公共方法:CWnd::IsDlgButtonChecked
CWnd::IsDlgButtonChecked 是 MFC(Microsoft Foundation Classes)中的 CWnd 类的一个公共方法,用于获取单选按钮或复选框的选中状态。以下是该方法的基本信息:UINT IsDlgButtonChecked(int nIDButton) const; nIDButton:指定单选按钮或复选框的标识符。返回值: 如果按钮被选中,返回值为 BST_CHECKED(1)。 如果按钮未被选中,返回值为 BST_UNCHECKED(0)。 如果按钮是灰色状态(不可用状态),返回值为 BST_INDETERMINATE(2)。使用示例:CWnd* pWnd = ...; // 通过某种方式获取 CWnd 对象的指针int nIDButton = IDC_MY_CHECKBOX; // 替换为您的复选框或单选按钮的标识符UINT checkedState = pWnd->IsDlgButtonChecked(nIDButton);if (checkedState == BST_CHECKED){ // 复选框或单选按钮被选中}el...
MFC CWnd 类 公共方法:CWnd::IsDialogMessage
CWnd::IsDialogMessage 是 MFC(Microsoft Foundation Classes)中的一个公共方法,通常用于处理对话框的消息循环中的消息。这个方法用于检查并处理特定于对话框的消息,例如 Tab 键、箭头键等。通常,这个方法在对话框的 PreTranslateMessage 中被调用。以下是该方法的基本信息:virtual BOOL IsDialogMessage(LPMSG lpMsg); lpMsg:指向 MSG 结构的指针,包含要处理的消息。返回值: 如果消息被处理,返回值为非零;如果消息未被处理,返回值为零。使用示例:BOOL CYourDialog::PreTranslateMessage(MSG* pMsg){ if (IsDialogMessage(pMsg)) return TRUE; return CDialog::PreTranslateMessage(pMsg);}在上面的示例中,CYourDialog 是派生自 CDialog 的自定义对话框类。PreTranslateMessage 是一个虚拟函数,用于预...
MFC CWnd 类 公共方法:CWnd::InvalidateRgn
CWnd::InvalidateRgn 是 MFC(Microsoft Foundation Classes)中的 CWnd 类的公共方法之一,用于使指定的区域无效,从而请求重新绘制该区域。以下是该方法的基本信息:BOOL InvalidateRgn(CRgn* pRgn, BOOL bErase = TRUE); pRgn:一个指向 CRgn 对象的指针,指定要使其无效的区域。 bErase:一个布尔值,指示是否擦除背景。如果为 TRUE,将擦除背景;如果为 FALSE,将保留背景。返回值: 如果成功,返回值为非零;如果失败,返回值为零。使用示例:CWnd* pWnd = ...; // 通过某种方式获取 CWnd 对象的指针CRgn myRegion;// 假设在此处为 myRegion 赋值,表示要使其无效的区域if (pWnd->InvalidateRgn(&myRegion)){ // 使指定区域无效,并请求重新绘制}else{ // 使区域无效失败}通过调用 InvalidateRgn 方法,您可以通知系统指定的区域已经过时,需要重新绘制。这允许...
MFC CWnd 类 公共方法:CWnd::InvalidateRect
CWnd::InvalidateRect 是 MFC(Microsoft Foundation Classes)中的 CWnd 类的公共方法之一,用于使指定矩形区域无效,从而请求重新绘制该区域。以下是该方法的基本信息:BOOL InvalidateRect(LPCRECT lpRect, BOOL bErase = TRUE); lpRect:一个指向 RECT 结构的指针,指定要使其无效的矩形区域。如果为 NULL,则整个客户区域将被标记为无效。 bErase:一个布尔值,指示是否擦除背景。如果为 TRUE,将擦除背景;如果为 FALSE,将保留背景。返回值: 如果成功,返回值为非零;如果失败,返回值为零。使用示例:CWnd* pWnd = ...; // 通过某种方式获取 CWnd 对象的指针RECT rectToInvalidate = {10, 10, 100, 100}; // 示例矩形区域if (pWnd->InvalidateRect(&rectToInvalidate)){ // 使指定矩形区域无效,并请求重新绘制}else{ // 使矩形...
MFC CWnd 类 公共方法:CWnd::Invalidate
CWnd::Invalidate 是 MFC(Microsoft Foundation Classes)中的 CWnd 类的公共方法之一,用于使窗口区域无效,从而请求重新绘制。以下是该方法的基本信息:BOOL Invalidate(BOOL bErase = TRUE); bErase:一个布尔值,指示是否擦除背景。如果为 TRUE,将擦除背景;如果为 FALSE,将保留背景。返回值: 如果成功,返回值为非零;如果失败,返回值为零。使用示例:CWnd* pWnd = ...; // 通过某种方式获取 CWnd 对象的指针if (pWnd->Invalidate()){ // 使窗口区域无效,并请求重新绘制}else{ // 使窗口无效失败}通过调用 Invalidate 方法,您可以通知系统窗口区域已经过时,需要重新绘制。这在数据发生变化时,需要刷新界面时非常有用。请注意,Invalidate 仅仅标记窗口为无效,而不会立即导致重绘。系统将在处理消息队列时进行重绘。
MFC CWnd 类 公共方法:CWnd::HtmlHelp
在 MFC(Microsoft Foundation Classes)中,CWnd::HtmlHelp 不是 CWnd 类的公共方法。实际上,HtmlHelp 是一个Windows API函数,而不是 MFC 类的成员函数。HtmlHelp 函数用于显示 HTML 帮助文件。以下是该函数的基本信息:HWND HtmlHelp(HWND hwndCaller, LPCTSTR pszFile, UINT uCommand, DWORD_PTR dwData); hwndCaller:调用方窗口的句柄。 pszFile:HTML 帮助文件的路径或标识符。 uCommand:指定要执行的命令。例如,HH_DISPLAY_TOPIC 用于显示帮助文件的主题。 dwData:命令特定的数据。根据命令的不同,该参数可能具有不同的意义。使用示例:HWND hWndCaller = ...; // 调用方窗口的句柄LPCTSTR pszHelpFile = _T("C:\\Path\\To\\Your\\HelpFile.chm");UINT uCommand = HH_DISP...
MFC CWnd 类 公共方法:CWnd::HiliteMenuItem
在 MFC(Microsoft Foundation Classes)中,CWnd::HiliteMenuItem 是 CWnd 类的公共方法之一,用于在菜单中高亮显示(hilite)指定的菜单项。以下是该方法的基本信息:BOOL HiliteMenuItem(HMENU hMenu, UINT uItemHilite, UINT uHilite); hMenu:要操作的菜单的句柄。 uItemHilite:要高亮显示的菜单项的标识符。 uHilite:指定高亮显示状态。可以是 MF_BYCOMMAND 或 MF_BYPOSITION 位掩码之一。返回值: 如果成功,返回值为非零;如果失败,返回值为零。使用示例:CWnd* pWnd = ...; // 通过某种方式获取 CWnd 对象的指针HMENU hMenu = ...; // 获取菜单的句柄UINT menuItemID = ...; // 要高亮显示的菜单项的标识符UINT hiliteState = MF_BYCOMMAND | MF_HILITE;if (pWnd->HiliteMenuItem(hMenu, ...
MFC CWnd 类 公共方法:CWnd::HideCaret
在MFC(Microsoft Foundation Classes)中,CWnd::HideCaret 是 CWnd 类的公共方法,用于隐藏光标(caret)。光标是用于指示文本输入位置的闪烁符号,而 HideCaret 允许你在窗口中隐藏它。以下是该方法的基本信息:BOOL HideCaret();返回值: 如果成功隐藏光标,返回值为非零;如果发生错误,返回值为零。使用示例:CWnd* pWnd = ...; // 通过某种方式获取 CWnd 对象的指针if (pWnd->HideCaret()){ // 光标成功隐藏}else{ // 隐藏光标失败}通过调用 HideCaret 方法,您可以在窗口中隐藏光标。这在某些情况下可能很有用,例如在绘制自定义控件或在特定文本输入场景中。
MFC CWnd 类 公共方法:CWnd::GetWindowTextLength
CWnd::GetWindowTextLength 是 MFC(Microsoft Foundation Classes)中的 CWnd 类的公共方法,用于获取窗口的文本内容的长度,不包括结尾的 NULL 字符。以下是该方法的基本信息:int GetWindowTextLength() const;返回值: 返回窗口文本内容的长度,不包括结尾的 NULL 字符;如果发生错误,返回值为零。使用示例:CWnd* pWnd = ...; // 通过某种方式获取 CWnd 对象的指针int textLength = pWnd->GetWindowTextLength();if (textLength > 0){ // 现在 textLength 包含了窗口的文本内容的长度}else{ // 获取文本内容长度失败}通过调用 GetWindowTextLength 方法,您可以获取窗口文本内容的长度,而不必获取文本本身。这对于确定文本长度而不需要实际文本内容的场景非常有用。