MFC CWnd 类 公共方法:CWnd::SetTimer
在 MFC(Microsoft Foundation Classes)中,CWnd::SetTimer 是一个公共方法,用于在窗口上启动一个定时器。该方法的声明如下:UINT_PTR SetTimer(UINT_PTR nIDEvent, UINT nElapse, TIMERPROC lpfnTimerFunc = NULL); nIDEvent: 一个无符号整数,表示定时器的标识符。可以用这个标识符来区分多个定时器。 nElapse: 一个无符号整数,表示定时器的间隔时间,以毫秒为单位。 lpfnTimerFunc: 一个指向 TIMERPROC 函数的指针,表示定时器回调函数。如果为 NULL,则使用默认的处理函数。TIMERPROC 函数的定义如下:VOID CALLBACK TimerProc( HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime);使用 CWnd::SetTimer 方法,你可以在窗口上创建一个定时器,并在指定的时间间隔内周期性地触发定时器事件。以下是一个示例,演示如何在 MFC 应用程序中使用 ...
MFC CWnd 类 公共方法:CWnd::SetScrollRange
在 MFC(Microsoft Foundation Classes)中,CWnd::SetScrollRange 是一个公共方法,用于设置窗口或控件的滚动条范围。该方法的声明如下:void SetScrollRange(int nBar, int nMinPos, int nMaxPos, BOOL bRedraw = TRUE); nBar: 一个整数值,表示滚动条的标识,可以是 SB_HORZ(水平滚动条)或 SB_VERT(垂直滚动条)。 nMinPos: 一个整数值,表示滚动条的最小位置。 nMaxPos: 一个整数值,表示滚动条的最大位置。 bRedraw: 一个布尔值,表示在设置滚动范围后是否重新绘制窗口。如果为 TRUE,则重绘窗口。使用 CWnd::SetScrollRange 方法,你可以设置窗口的滚动条范围,从而限制滚动条可滚动的范围。以下是一个示例,演示如何使用 SetScrollRange 方法设置垂直滚动条的范围:// 假设 pWnd 是你的窗口类的一个成员变量int minPos = 0; // 最小滚动条位置int maxPos = 100; // ...
MFC CWnd 类 公共方法:CWnd::SetScrollPos
在 MFC(Microsoft Foundation Classes)中,CWnd::SetScrollPos 是一个公共方法,用于设置窗口或控件的滚动条位置。该方法的声明如下:int SetScrollPos(int nBar, int nPos, BOOL bRedraw = TRUE); nBar: 一个整数值,表示滚动条的标识,可以是 SB_HORZ(水平滚动条)或 SB_VERT(垂直滚动条)。 nPos: 一个整数值,表示滚动条的新位置。 bRedraw: 一个布尔值,表示在设置滚动位置后是否重新绘制窗口。如果为 TRUE,则重绘窗口。使用 CWnd::SetScrollPos 方法,你可以直接设置窗口的滚动条位置。以下是一个示例,演示如何使用 SetScrollPos 方法设置垂直滚动条的位置:// 假设 pWnd 是你的窗口类的一个成员变量int newPos = 50; // 新的滚动条位置pWnd->SetScrollPos(SB_VERT, newPos, TRUE);在这个示例中,SB_VERT 表示垂直滚动条,newPos 表示新的滚动条位置。通过调用...
MFC CWnd 类 公共方法:CWnd::SetScrollInfo
在 MFC(Microsoft Foundation Classes)中,CWnd::SetScrollInfo 是一个公共方法,用于设置窗口或控件的滚动信息。该方法的声明如下:BOOL SetScrollInfo(int nBar, LPSCROLLINFO lpScrollInfo, BOOL bRedraw = TRUE); nBar: 一个整数值,表示滚动条的标识,可以是 SB_HORZ(水平滚动条)或 SB_VERT(垂直滚动条)。 lpScrollInfo: 一个指向 SCROLLINFO 结构的指针,该结构包含有关滚动条信息的详细信息,如范围、页面大小、滚动位置等。 bRedraw: 一个布尔值,表示在设置滚动信息后是否重新绘制窗口。如果为 TRUE,则重绘窗口。SCROLLINFO 结构的定义如下:typedef struct tagSCROLLINFO { UINT cbSize; UINT fMask; int nMin; int nMax; UINT nPage; int nPos; int nTrackPos;} SCROLL...
MFC CWnd 类 公共方法:CWnd::SetRedraw
在 MFC(Microsoft Foundation Classes)中,CWnd::SetRedraw 不是 CWnd 类的公共方法。可能是出现了一些误导,或者是混淆了方法的名称。如果你的目标是控制窗口的绘制(重绘)过程,MFC 提供了 CWnd::RedrawWindow 方法,该方法允许你请求或强制窗口重绘。下面是 CWnd::RedrawWindow 的声明:BOOL RedrawWindow(LPCRECT lpRectUpdate = NULL, CRgn* prgnUpdate = NULL, UINT flags = RDW_INVALIDATE | RDW_UPDATENOW | RDW_ERASE);该方法允许你指定要更新的矩形区域、区域对象以及更新标志。
MFC CWnd 类 公共方法:CWnd::SetParent
在 MFC(Microsoft Foundation Classes)中,CWnd::SetParent 是一个公共方法,用于设置窗口的父窗口。该方法的声明如下:CWnd* SetParent(CWnd* pWndNewParent); pWndNewParent: 一个指向新父窗口的 CWnd 对象指针。通过调用 SetParent 方法,你可以将当前窗口设置为指定父窗口的子窗口。这种操作可以用于改变窗口的层次结构。以下是一个示例,演示如何在 MFC 应用程序中使用 SetParent 方法:// 创建一个主窗口CMainFrame* pMainFrame = new CMainFrame();if (!pMainFrame->Create(NULL, _T("Main Window"))){ AfxMessageBox(_T("Failed to create main window!")); return FALSE;}pMainFrame->ShowWindow(SW_SHOWNORMAL);pMainFrame-...
MFC CWnd 类 公共方法:CWnd::SetOwner
在 MFC(Microsoft Foundation Classes)中,CWnd::SetOwner 是一个公共方法,用于设置窗口的拥有者窗口。该方法的声明如下:void SetOwner(CWnd* pOwnerWnd); pOwnerWnd: 一个指向拥有者窗口的 CWnd 对象指针。通过调用 SetOwner 方法,你可以将当前窗口的拥有者设置为另一个窗口。这在窗口之间进行通信或者在模态对话框中使用是常见的。以下是一个示例,演示如何在一个窗口类中设置拥有者窗口:CMainFrame::CMainFrame(){ // 创建主窗口 if (!Create(NULL, _T("Main Window"), WS_OVERLAPPEDWINDOW, rectDefault, NULL, 0)) { AfxMessageBox(_T("Failed to create main window!")); return; } // 创建子窗口 m_childWnd.Create(NULL...
MFC CWnd 类 公共方法:CWnd::SetMenu
在 MFC(Microsoft Foundation Classes)中,CWnd::SetMenu 是一个公共方法,用于为窗口设置菜单。该方法的声明如下:BOOL SetMenu(HMENU hMenu); hMenu: 一个 HMENU 句柄,表示要设置为窗口菜单的菜单句柄。通过调用 SetMenu 方法,你可以将一个已经创建的菜单与窗口相关联,从而实现在窗口中显示菜单。以下是一个示例,在窗口创建时设置菜单:BOOL CMyWnd::OnCreate(LPCREATESTRUCT lpCreateStruct){ if (CWnd::OnCreate(lpCreateStruct) == -1) return -1; // 创建菜单 HMENU hMenu = ::CreateMenu(); ::AppendMenu(hMenu, MF_STRING, IDM_FILE_OPEN, _T("Open")); ::AppendMenu(hMenu, MF_STRING, IDM_FILE_SAVE, _T("S...
MFC CWnd 类 公共方法:CWnd::SetLayeredWindowAttributes
在 MFC(Microsoft Foundation Classes)中,CWnd::SetLayeredWindowAttributes 是一个公共方法,用于设置窗口的透明度和颜色键。该方法的声明如下:BOOL SetLayeredWindowAttributes(COLORREF crKey, BYTE bAlpha, DWORD dwFlags); crKey: 一个 COLORREF 值,表示颜色键。在窗口上的此颜色将是透明的。 bAlpha: 一个 BYTE 值,表示窗口的透明度。取值范围为 0(完全透明)到 255(完全不透明)。 dwFlags: 一个 DWORD 值,表示设置的标志。可以是以下常量的组合: - LWA_COLORKEY: 使用 crKey 参数指定的颜色作为透明色。 - LWA_ALPHA: 使用 bAlpha 参数指定的透明度。通过调用 SetLayeredWindowAttributes 方法,你可以实现窗口的透明效果。这在一些特殊的 UI 设计中可能会用到。以下是一个示例,在窗口创建时设置透明度和颜色键:BOOL CMyWnd::OnCreat...
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...