MFC CWnd 类 公共方法:CWnd::SetIcon
在 MFC(Microsoft Foundation Classes)中,CWnd::SetIcon 是一个公共方法,用于设置窗口的图标。该方法的声明如下:void SetIcon(HICON hIcon, BOOL bBigIcon = TRUE); hIcon: 指定窗口的图标句柄。 bBigIcon: 一个布尔值,如果为 TRUE,则设置大图标(32x32像素),如果为 FALSE,则设置小图标(16x16像素)。通过调用 SetIcon 方法,你可以为窗口设置不同大小的图标。通常,在窗口创建过程中或者其他适当的时候调用此方法,将图标设置到窗口上。以下是一个示例,在窗口创建时设置大图标和小图标:BOOL CMyWnd::OnCreate(LPCREATESTRUCT lpCreateStruct){ if (CWnd::OnCreate(lpCreateStruct) == -1) return -1; // 加载大图标 HICON hBigIcon = AfxGetApp()->LoadIcon(IDI_MYAPP_ICON_BIG); ...
MFC CWnd 类 公共方法:CWnd::SetForegroundWindow
CWnd::SetForegroundWindow 是 MFC(Microsoft Foundation Classes)中 CWnd 类的一个公共方法,用于将窗口置于前台,使其成为活动窗口。BOOL SetForegroundWindow();该方法返回一个 BOOL 类型的值,表示是否成功将窗口置于前台。如果成功,返回非零值;如果失败,返回零。调用 SetForegroundWindow 方法将指定的窗口激活,并将其带到窗口堆栈的顶部。这样,该窗口就成为了用户正在与之交互的窗口,从而可以接收键盘输入等用户操作。以下是一个示例,演示如何在 MFC 应用程序中使用 SetForegroundWindow 方法:// 假设 pWnd 是你的窗口类的一个成员变量if (pWnd->SetForegroundWindow()){ // 窗口成功置于前台,可以执行一些操作}else{ // 窗口置于前台失败,处理错误}这个示例中,通过调用 SetForegroundWindow 将窗口置于前台,并通过返回值判断是否成功。如果成功,可以执行相应的操作;如果失败,可以处理错误情况...
MFC CWnd 类 公共方法:CWnd::SetFont
CWnd::SetFont 是 MFC(Microsoft Foundation Classes)中 CWnd 类的一个公共方法,用于设置窗口中控件的字体。void SetFont(CFont* pFont, BOOL bRedraw = TRUE);这个方法允许你为窗口中的控件设置一个新的字体。pFont 参数是指向 CFont 对象的指针,该对象描述了要应用于控件的字体。bRedraw 参数表示在设置字体后是否重新绘制控件。如果设置为 TRUE,控件将在设置字体后被重绘;如果设置为 FALSE,则不会立即重绘,你可能需要手动调用 Invalidate 或者其他绘制相关的方法来触发重绘。以下是一个示例,演示如何在 MFC 应用程序中使用 SetFont 方法:CFont font;font.CreateFont( 12, // 字体高度 0, // 字体宽度 0, // 旋转角度 0, ...
MFC CWnd 类 公共方法:CWnd::SetFocus
CWnd::SetFocus 是 MFC(Microsoft Foundation Classes)中 CWnd 类的一个公共方法,用于设置窗口焦点。BOOL SetFocus();该方法返回一个 BOOL 类型的值,表示是否成功设置焦点。如果成功,返回非零值;如果失败,返回零。调用 SetFocus 方法会将焦点设置到调用该方法的窗口上,使其成为活动窗口,并且接收键盘输入。例如,在一个窗口类的成员函数中调用 SetFocus,可以将焦点设置到该窗口上:BOOL CMyWnd::OnCreate(LPCREATESTRUCT lpCreateStruct){ if (CWnd::OnCreate(lpCreateStruct) == -1) return -1; // 在窗口创建时设置焦点 SetFocus(); return 0;}这样,在窗口创建时,焦点会被设置到这个窗口上,用户可以直接与该窗口进行交互。
MFC CWnd 类 公共方法:CWnd::SetDlgItemText
CWnd::SetDlgItemText 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于设置对话框中具有指定 ID 的控件的文本内容。通常,这个方法用于在对话框中设置静态文本、编辑框等控件的文本。以下是 CWnd::SetDlgItemText 的基本语法:void SetDlgItemText( int nID, LPCTSTR lpszText);参数的含义如下: nID:指定对话框控件的标识符(ID)。 lpszText:要设置到控件的文本内容,以 null 结尾的字符串。使用示例:// 在对话框中的 IDC_STATIC_TEXT 静态文本控件中设置文本内容SetDlgItemText(IDC_STATIC_TEXT, _T("Hello, MFC!"));在这个例子中,假设对话框中有一个 ID 为 IDC_STATIC_TEXT 的静态文本控件,通过调用 SetDlgItemText 将文本内容 "Hello, MFC!" 设置到该控件中。这个方法主要用于在运行时更改对话框中各种控件...
MFC CWnd 类 公共方法:CWnd::SetDlgItemInt
CWnd::SetDlgItemInt 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于将一个整数值设置到对话框中具有指定 ID 的控件上。通常,这个方法用于在对话框中设置一个编辑框的文本,以显示整数值。以下是 CWnd::SetDlgItemInt 的基本语法:void SetDlgItemInt( int nID, UINT nValue, BOOL bSigned = TRUE);参数的含义如下: nID:指定对话框控件的标识符(ID)。 nValue:要设置到控件的整数值。 bSigned:如果为 TRUE,则表示该整数值是有符号的;如果为 FALSE,则表示该整数值是无符号的。使用示例:// 在对话框中的 IDC_EDIT1 编辑框中设置整数值SetDlgItemInt(IDC_EDIT1, 42, TRUE);在这个例子中,假设对话框中有一个 ID 为 IDC_EDIT1 的编辑框,通过调用 SetDlgItemInt 将整数值 42 设置到该编辑框中。如果你希望设置无符号整数值,将第三个参数 bSigned 设为 F...
MFC CWnd 类 公共方法:CWnd::SetDlgCtrlID
在 MFC(Microsoft Foundation Classes)中,CWnd::SetDlgCtrlID 方法用于设置窗口的对话框控件 ID(Control ID)。这个方法通常在运行时改变窗口的 ID。以下是 CWnd::SetDlgCtrlID 的基本语法:void SetDlgCtrlID( UINT nID);其中,nID 参数是你想要为窗口设置的新的控件 ID。使用示例:CWnd* pWnd = GetDlgItem(IDC_MY_BUTTON); // 获取对话框中某个控件的指针if (pWnd != nullptr) { // 设置该控件的新 ID 为 IDC_NEW_BUTTON pWnd->SetDlgCtrlID(IDC_NEW_BUTTON);}在上述示例中,通过 GetDlgItem 获取了对话框中控件的指针,然后使用 SetDlgCtrlID 设置了该控件的新 ID。请注意,修改控件的 ID 并不会影响控件的外观或行为,而只是改变了其在对话框中的标识符。在运行时改变控件的 ID 可能对某些操作有用,但需要小心使用,确保不会引起不必...
MFC CWnd 类 公共方法:CWnd::SetClipboardViewer
在 MFC(Microsoft Foundation Classes)中,CWnd::SetClipboardViewer 方法被用于注册一个窗口作为剪贴板观察者(Clipboard Viewer)。剪贴板观察者可以接收剪贴板的变化通知,以便及时处理剪贴板内容的改变。以下是 CWnd::SetClipboardViewer 的基本语法:HWND SetClipboardViewer();该方法会将调用它的窗口注册为剪贴板观察者,并返回之前注册的剪贴板观察者的句柄。通常,你可以使用这个方法在窗口之间实现剪贴板内容的同步。使用示例:// 在窗口创建时注册为剪贴板观察者BOOL CMyWnd::OnCreate(LPCREATESTRUCT lpCreateStruct){ if (CWnd::OnCreate(lpCreateStruct) == -1) return -1; // 注册为剪贴板观察者 m_hPrevClipboardViewer = SetClipboardViewer(); return 0;}在这个例子中,在窗口创建时通过调用 S...
MFC CWnd 类 公共方法:CWnd::SetCapture
CWnd::SetCapture 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于设置鼠标捕获。鼠标捕获是指将鼠标输入限制在指定窗口范围内,即使鼠标移动到窗口之外也会继续接收鼠标消息。通常,这是在进行拖放、调整窗口大小等操作时使用的。以下是 CWnd::SetCapture 的基本语法:CWnd* SetCapture();该方法会设置调用它的窗口为鼠标捕获窗口,并返回之前拥有鼠标捕获的窗口的指针。在使用 SetCapture 后,通常需要在相应的时机(例如鼠标释放时)使用 ReleaseCapture 方法释放鼠标捕获。使用示例:// 在鼠标按下事件中设置鼠标捕获void CMyWnd::OnLButtonDown(UINT nFlags, CPoint point){ CWnd* pPrevCapture = SetCapture(); // 这里可以处理拖放等操作 // 在适当的时机释放鼠标捕获 // ReleaseCapture();}在这个例子中,当鼠标左键按下时,调用 SetCapture 设置鼠标捕获,然...
MFC CWnd 类 公共方法:CWnd::SetActiveWindow
CWnd::SetActiveWindow 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于将窗口设定为活动窗口,使其成为具有焦点和活动状态的窗口。这通常用于在程序中切换活动窗口,例如当用户点击某个窗口时,将其设为活动窗口。以下是 CWnd::SetActiveWindow 的基本语法:CWnd* SetActiveWindow();该方法会将调用它的窗口设为活动窗口,并返回之前的活动窗口的指针。通常,你可以使用这个方法在窗口之间进行焦点的切换。使用示例:// 将当前窗口设为活动窗口CWnd* pPrevActiveWnd = SetActiveWindow();// 这里可以执行与窗口切换相关的操作// 恢复之前的活动窗口if (pPrevActiveWnd != NULL) pPrevActiveWnd->SetActiveWindow();这个方法常常在处理窗口的消息响应函数中使用,例如在处理鼠标点击事件时将相应的窗口设为活动窗口。
MFC CWnd 类 公共方法:CWnd::SendNotifyMessage
CWnd::SendNotifyMessage 是 MFC(Microsoft Foundation Classes)中的一个公共方法,它类似于 SendMessage,但用于向窗口发送通知消息(notification message)。以下是 CWnd::SendNotifyMessage 的基本语法:LRESULT SendNotifyMessage( UINT message, WPARAM wParam = 0, LPARAM lParam = 0);参数的含义与 SendMessage 相似: message:要发送的通知消息。 wParam:通知消息的 wParam 参数。 lParam:通知消息的 lParam 参数。通知消息通常用于在窗口之间进行通信,但与标准消息不同,通知消息通常被设计为广播给窗口的所有父窗口、子窗口或者同级窗口。这样,可以通过 SendNotifyMessage 在窗口之间传递信息。使用示例:// 向窗口发送通知消息 WM_MY_NOTIFICATIONSendNotifyMessage(WM_MY_NOTIFICATION, (WPA...
MFC CWnd 类 公共方法:CWnd::SendMessageToDescendants
CWnd::SendMessageToDescendants 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于向窗口的所有子孙窗口发送指定的消息。这个方法通常在处理特定的消息需要传播到窗口的整个子窗口层次结构时使用。以下是 CWnd::SendMessageToDescendants 的基本语法:BOOL SendMessageToDescendants( UINT message, WPARAM wParam = 0, LPARAM lParam = 0, BOOL bDeep = TRUE, BOOL bOnlyPerm = FALSE);参数的含义如下: message:要发送的消息。 wParam:消息的 wParam 参数。 lParam:消息的 lParam 参数。 bDeep:如果为 TRUE,则在所有子窗口中递归发送消息;如果为 FALSE,则仅在直接子窗口中发送消息。 bOnlyPerm:如果为 TRUE,则只发送消息给那些具有 WS_VISIBLE 和 WS_CHILD 样式的子窗口。使用示例:// 向...
MFC CWnd 类 公共方法:CWnd::SendMessage
CWnd::SendMessage 是 MFC(Microsoft Foundation Classes)中的一个公共方法,它用于向窗口发送 Windows 消息。该方法的语法与 Windows API 函数 SendMessage 相似,用于在窗口之间传递消息。以下是 CWnd::SendMessage 的基本语法:LRESULT SendMessage( UINT message, WPARAM wParam = 0, LPARAM lParam = 0);参数的含义如下: message:要发送的消息。 wParam:消息的 wParam 参数。 lParam:消息的 lParam 参数。使用示例:// 向窗口发送 WM_CLOSE 消息,请求关闭窗口SendMessage(WM_CLOSE);// 向窗口发送自定义消息,携带额外参数SendMessage(WM_MY_CUSTOM_MESSAGE, (WPARAM)42, (LPARAM)123);这个方法通常用于向窗口发送标准或自定义的 Windows 消息。在实际应用中,消息的选择和参数的使用取决于特定的需求和消...
MFC CWnd 类 公共方法:CWnd::SendDlgItemMessage
CWnd::SendDlgItemMessage 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于向指定对话框项(Dialog Item)发送消息。通常,这个方法用于与对话框上的控件进行通信,例如文本框、按钮等。以下是 CWnd::SendDlgItemMessage 的基本语法:LRESULT SendDlgItemMessage( int nID, UINT message, WPARAM wParam = 0, LPARAM lParam = 0);参数的含义如下: nID:对话框项的标识符(ID)。 message:要发送的消息。 wParam:消息的 wParam 参数。 lParam:消息的 lParam 参数。使用示例:// 假设有一个对话框中的编辑框,其ID为 IDC_EDIT1CWnd* pEditWnd = GetDlgItem(IDC_EDIT1);if (pEditWnd != nullptr) { // 向编辑框发送消息,设置文本 pEditWnd->SendMessage(WM_S...
MFC CWnd 类 公共方法:CWnd::ScrollWindowEx
在 MFC(Microsoft Foundation Classes)中,CWnd::ScrollWindowEx 是一个公共方法,用于在窗口客户区内进行滚动操作,相比于 CWnd::ScrollWindow 提供了更多的选项和控制。以下是 CWnd::ScrollWindowEx 的基本语法:BOOL ScrollWindowEx( int dx, int dy, LPCRECT lpRectScroll, LPCRECT lpRectClip, CRgn* prgnUpdate, LPRECT lpRectUpdate, UINT flags);参数的含义如下: dx:水平方向的滚动距离,正数表示向右滚动,负数表示向左滚动。 dy:垂直方向的滚动距离,正数表示向下滚动,负数表示向上滚动。 lpRectScroll:指定需要滚动的矩形区域,如果为 NULL,则整个窗口客户区域都将被滚动。 lpRectClip:指定一个矩形区域,用于限制滚动的区域。 prgnUpdate:指定一个区域对象,表示需要更新的区域。 lpRectUpdate:指定一个矩形,表示需...
MFC CWnd 类 公共方法:CWnd::ScrollWindow
CWnd::ScrollWindow 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于在窗口客户区内进行滚动操作。该方法可以用于滚动窗口的内容,包括子窗口、文本或图形等。以下是 CWnd::ScrollWindow 的基本语法:BOOL ScrollWindow( int dx, int dy, LPCRECT lpRect = NULL, LPCRECT lpClipRect = NULL);参数的含义如下: dx:水平方向的滚动距离,正数表示向右滚动,负数表示向左滚动。 dy:垂直方向的滚动距离,正数表示向下滚动,负数表示向上滚动。 lpRect:指定需要更新的矩形区域,如果为 NULL,则整个窗口客户区域都将被更新。 lpClipRect:指定一个矩形区域,用于限制滚动的区域。ScrollWindow 方法通过滚动窗口客户区的内容,来模拟窗口的滚动效果。通常,它用于处理滚动条的滚动事件。以下是一个简单的示例,演示如何使用 ScrollWindow 方法:// 在滚动条的滚动事件中调用此函数void CMyWnd::OnH...
MFC CWnd 类 公共方法:CWnd::ScreenToClient
CWnd::ScreenToClient 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于将屏幕坐标转换为客户区坐标。这个方法可以用于将在屏幕上指定位置的点坐标转换为相对于窗口客户区域的坐标。以下是 CWnd::ScreenToClient 的基本语法:BOOL ScreenToClient(LPPOINT lpPoint) const;BOOL ScreenToClient(LPRECT lpRect) const;这两个重载的方法都用于将屏幕坐标转换为客户区坐标。第一个重载用于转换单个点的坐标,而第二个重载用于转换矩形区域的坐标。使用示例:CPoint pointScreen(100, 100);ScreenToClient(&pointScreen);// 现在 pointScreen 包含了相对于窗口客户区的坐标// 或者,对于矩形区域:CRect rectScreen(100, 100, 200, 200);ScreenToClient(&rectScreen);// 现在 rectScreen 包含了相对于窗口客户...
MFC CWnd 类 公共方法:CWnd::RunModalLoop
在 MFC(Microsoft Foundation Classes)中,CWnd::RunModalLoop 是一个公共方法,用于运行模态循环。这个方法通常用于创建模态对话框或模态窗口,并在模态对话框或窗口上运行消息循环,直到对话框或窗口关闭。以下是 CWnd::RunModalLoop 的基本语法:int RunModalLoop(DWORD dwFlags = 0);其中,dwFlags 是一个标志,用于指定循环的行为,可以是以下常量的组合: MLF_SHOWONIDLE:在空闲时显示窗口。 MLF_NOIDLEMSG:不处理空闲消息。RunModalLoop 方法通常在创建模态对话框或窗口后调用。它启动了一个消息循环,直到对话框或窗口关闭。在消息循环中,会处理用户输入、定时器消息等,并等待对话框或窗口关闭的消息。以下是一个简单的示例,演示如何使用 RunModalLoop 运行模态对话框:CMyDialog dlg;INT_PTR nResult = dlg.DoModal(); // 运行模态对话框在 DoModal 函数内部,通常会调用 RunModalLoop 来处理模态...
MFC CWnd 类 公共方法:CWnd::RepositionBars
CWnd::RepositionBars 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于重新定位并调整控制条(如工具栏、状态栏等)的大小。通常,该方法用于在窗口大小发生变化时,动态地调整控制条的布局,以适应新的窗口大小。以下是 CWnd::RepositionBars 的基本语法:void RepositionBars( UINT nIDFirst, UINT nIDLast, UINT nIDLeftOver, UINT nFlags = reposDefault, LPRECT lpRectParam = NULL, LPCRECT lpRectClient = NULL, BOOL bStretch = TRUE);参数的含义如下: nIDFirst 和 nIDLast:指定控制条的 ID 范围,这些控制条将被重新定位和调整大小。 nIDLeftOver:指定要留给剩余空间的控制条的 ID。这个控制条将填充任何未被其他控制条占用的空间。 nFlags:控制调整操作的标志。可以是以下值的组合: - repo...
MFC CWnd 类 公共方法:CWnd::ReleaseDC
CWnd::ReleaseDC 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于释放由先前调用 CWnd::GetDC 获取的设备上下文(DC)。在使用 GetDC 获取设备上下文后,必须调用 ReleaseDC 来释放它,以确保正确管理系统资源。以下是 CWnd::ReleaseDC 的基本语法:int ReleaseDC( CDC* pDC);其中参数 pDC 是由 GetDC 调用返回的设备上下文对象。返回值是一个整数,表示设备上下文的引用计数。如果引用计数为零,表示设备上下文已经成功释放。使用示例:CWnd myWnd;CDC* pDC = myWnd.GetDC();// 在此处使用设备上下文进行绘图等操作myWnd.ReleaseDC(pDC); // 释放设备上下文这样,通过 ReleaseDC 方法释放设备上下文,确保在不再需要使用时及时释放系统资源,以防止资源泄漏。