MFC CWnd 类 受保护方法:CWnd::OnVScroll
CWnd::OnVScroll 是 MFC(Microsoft Foundation Classes)中 CWnd 类的一个受保护方法,用于处理垂直滚动条的滚动事件。当一个拥有垂直滚动条的窗口或控件接收到 WM_VSCROLL 消息时,OnVScroll 方法会被调用。该方法允许你在垂直滚动发生时执行特定的操作,例如更新显示内容。以下是一个简单的示例:class CMyWnd : public CWnd{ // ...protected: afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar); DECLARE_MESSAGE_MAP()};BEGIN_MESSAGE_MAP(CMyWnd, CWnd) // ... ON_WM_VSCROLL()END_MESSAGE_MAP()void CMyWnd::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar){ // 在这里添加处理垂直滚动事件的代码 ...
MFC CWnd 类 受保护方法:CWnd::OnVKeyToItem
CWnd::OnVKeyToItem 是 MFC(Microsoft Foundation Classes)中 CWnd 类的一个受保护方法,用于处理在控件中按键与列表框或组合框中的项的映射关系。这个方法通常在响应控件的键盘输入时被调用。当用户在一个具有列表框或组合框风格的控件中按键时,OnVKeyToItem 可以用于确定按键与控件中的项之间的映射关系。以下是一个简单的示例:class CMyWnd : public CWnd{ // ...protected: afx_msg int OnVKeyToItem(UINT nKey, CListBox* pListBox, UINT nIndex); DECLARE_MESSAGE_MAP()};BEGIN_MESSAGE_MAP(CMyWnd, CWnd) // ... ON_WM_VKEYTOITEM()END_MESSAGE_MAP()int CMyWnd::OnVKeyToItem(UINT nKey, CListBox* pListBox, UINT nIndex){ // 在这里添加处理...
MFC CWnd 类 受保护方法:CWnd::OnUpdateUIState
CWnd::OnUpdateUIState 是 MFC(Microsoft Foundation Classes)中 CWnd 类的一个受保护方法,用于处理更新用户界面状态的消息。当窗口接收到 WM_UPDATEUISTATE 消息时,OnUpdateUIState 方法会被调用。这个方法通常用于响应用户界面状态的变化,例如激活、禁用或隐藏控件。你可以在你的派生类中覆盖这个方法,以便在接收到相应消息时执行特定的操作。以下是一个简单的示例:class CMyWnd : public CWnd{ // ...protected: afx_msg void OnUpdateUIState(UINT nAction, UINT nUIElement); DECLARE_MESSAGE_MAP()};BEGIN_MESSAGE_MAP(CMyWnd, CWnd) // ... ON_WM_UPDATEUISTATE()END_MESSAGE_MAP()void CMyWnd::OnUpdateUIState(UINT nAction, UINT nUIElement...
MFC CWnd 类 受保护方法:CWnd::OnUniChar
CWnd::OnUniChar 是 MFC(Microsoft Foundation Classes)中 CWnd 类的一个受保护方法,用于处理与 Unicode 字符相关的消息。当窗口接收到 WM_UNICHAR 消息时,OnUniChar 方法会被调用。这个方法通常用于处理键盘输入,特别是在输入 Unicode 字符时。你可以在你的派生类中覆盖这个方法,以便在接收到 Unicode 字符消息时执行特定的操作。以下是一个简单的示例:class CMyWnd : public CWnd{ // ...protected: afx_msg void OnUniChar(UINT nChar, UINT nRepCnt, UINT nFlags); DECLARE_MESSAGE_MAP()};BEGIN_MESSAGE_MAP(CMyWnd, CWnd) // ... ON_WM_UNICHAR()END_MESSAGE_MAP()void CMyWnd::OnUniChar(UINT nChar, UINT nRepCnt, UINT nFlags){ ...
MFC CWnd 类 受保护方法:CWnd::OnTouchInput
CWnd::OnTouchInput 是 MFC(Microsoft Foundation Classes)中 CWnd 类的一个受保护方法,用于处理触摸输入事件。该方法在接收到触摸输入时被调用,允许应用程序响应和处理触摸屏幕的用户操作。具体而言,这个方法可以被子类覆盖(override),以便在触摸输入事件发生时执行特定的操作。在你的派生类中,你可以像下面这样覆盖这个方法:class CMyWnd : public CWnd{ // ...protected: afx_msg void OnTouchInput(CPoint pt, int nInputNumber, int nPressure, HANDLE hDevice, UINT dwID, DWORD dwTime); DECLARE_MESSAGE_MAP()};BEGIN_MESSAGE_MAP(CMyWnd, CWnd) // ... ON_WM_TOUCH()END_MESSAGE_MAP()void CMyWnd::OnTouchInput(CPoint pt, int nInput...
MFC CWnd 类 受保护方法:CWnd::OnTimer
CWnd::OnTimer 是 MFC(Microsoft Foundation Classes)中 CWnd 类的一个受保护方法,用于处理定时器消息。当您启动一个定时器并且定时器触发时,系统将发送 WM_TIMER 消息,并调用这个方法。以下是 OnTimer 方法的典型声明:afx_msg void OnTimer(UINT_PTR nIDEvent); nIDEvent 参数是定时器的 ID,用于标识是哪个定时器触发了消息。在实际应用中,您可以重写这个方法以执行在定时器触发时需要进行的自定义操作。例如:void CYourWndClass::OnTimer(UINT_PTR nIDEvent){ // 执行定时器触发时的自定义操作 // 调用基类实现 CWnd::OnTimer(nIDEvent);}在这个方法中,您可以根据 nIDEvent 参数的值,判断是哪个定时器触发了消息,然后执行相应的操作。为了使用这个方法,您需要在消息映射中添加对应的宏,例如:BEGIN_MESSAGE_MAP(CYourWndClass, CWnd) // 其他消息映射......
MFC CWnd 类 受保护方法:CWnd::OnTimeChange
CWnd::OnTimeChange 是 MFC(Microsoft Foundation Classes)中 CWnd 类的一个受保护方法,用于处理系统时间发生变化时的操作。当系统时间发生变化时,系统将发送 WM_TIMECHANGE 消息,并调用这个方法。以下是 OnTimeChange 方法的典型声明:afx_msg void OnTimeChange();在实际应用中,您可以重写这个方法以执行在系统时间变化时需要进行的自定义操作。例如:void CYourWndClass::OnTimeChange(){ // 执行系统时间变化时的自定义操作 // 调用基类实现 CWnd::OnTimeChange();}在这个方法中,您可以执行与系统时间变化相关的操作,根据需要更新您的界面或执行其他逻辑。为了使用这个方法,您需要在消息映射中添加对应的宏,例如:BEGIN_MESSAGE_MAP(CYourWndClass, CWnd) // 其他消息映射... ON_WM_TIMECHANGE()END_MESSAGE_MAP()这样,当系统时间发生变化时,On...
MFC CWnd 类 受保护方法:CWnd::OnSysKeyUp
CWnd::OnSysKeyUp 是 MFC(Microsoft Foundation Classes)中 CWnd 类的一个受保护方法,用于处理窗口系统键释放的消息。当用户释放按下的系统键时,系统将发送 WM_SYSKEYUP 消息,并调用这个方法。以下是 OnSysKeyUp 方法的典型声明:afx_msg void OnSysKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags); nChar 参数是释放的键的虚拟键码。 nRepCnt 参数是释放次数。 nFlags 参数是键盘扫描码和其他标志。在实际应用中,您可以重写这个方法以执行在系统键释放时需要进行的自定义操作。例如:void CYourWndClass::OnSysKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags){ // 执行系统键释放时的自定义操作 // 调用基类实现 CWnd::OnSysKeyUp(nChar, nRepCnt, nFlags);}在这个方法中,您可以根据 nChar 参数的值,判断用户释放的具体系统键,然后...
MFC CWnd 类 受保护方法:CWnd::OnSysKeyDown
CWnd::OnSysKeyDown 是 MFC(Microsoft Foundation Classes)中 CWnd 类的一个受保护方法,用于处理窗口系统键按下的消息。当用户按下系统键时,系统将发送 WM_SYSKEYDOWN 消息,并调用这个方法。以下是 OnSysKeyDown 方法的典型声明:afx_msg void OnSysKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags); nChar 参数是按下的键的虚拟键码。 nRepCnt 参数是重复次数。 nFlags 参数是键盘扫描码和其他标志。在实际应用中,您可以重写这个方法以执行在系统键按下时需要进行的自定义操作。例如:void CYourWndClass::OnSysKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags){ // 执行系统键按下时的自定义操作 // 调用基类实现 CWnd::OnSysKeyDown(nChar, nRepCnt, nFlags);}在这个方法中,您可以根据 nChar 参数的值,判断用户按下...
MFC CWnd 类 受保护方法:CWnd::OnSysCommand
CWnd::OnSysCommand 是 MFC(Microsoft Foundation Classes)中 CWnd 类的一个受保护方法,用于处理窗口系统命令消息。当用户通过点击标题栏上的系统菜单、执行窗口最大化、最小化、还原等操作时,系统将发送 WM_SYSCOMMAND 消息,并调用这个方法。以下是 OnSysCommand 方法的典型声明:afx_msg void OnSysCommand(UINT nID, LPARAM lParam); nID 参数是 WM_SYSCOMMAND 消息的低16位,表示触发的系统命令。 lParam 参数是 WM_SYSCOMMAND 消息的高16位,通常包含鼠标位置等信息。在实际应用中,您可以重写这个方法以执行在系统命令消息发生时需要进行的自定义操作。例如:void CYourWndClass::OnSysCommand(UINT nID, LPARAM lParam){ // 执行系统命令消息时的自定义操作 // 调用基类实现 CWnd::OnSysCommand(nID, lParam);}在这个方法中,您可以根据 ...
MFC CWnd 类 受保护方法:CWnd::OnSysColorChange
CWnd::OnSysColorChange 是 MFC(Microsoft Foundation Classes)中 CWnd 类的一个受保护方法,用于处理系统颜色改变时的操作。当用户更改了系统的颜色方案时,系统会调用这个方法。以下是 OnSysColorChange 方法的典型声明:afx_msg void OnSysColorChange();在实际应用中,您可以重写这个方法以执行在系统颜色改变时需要进行的自定义操作。例如:void CYourWndClass::OnSysColorChange(){ // 执行系统颜色改变时的自定义操作 // 调用基类实现 CWnd::OnSysColorChange();}在这个方法中,您可以根据需要重新设置窗口的颜色、调整绘图对象的颜色等,以适应新的系统颜色方案。为了使用这个方法,您需要在消息映射中添加对应的宏,例如:BEGIN_MESSAGE_MAP(CYourWndClass, CWnd) // 其他消息映射... ON_WM_SYSCOLORCHANGE()END_MESSAGE_MAP()这样,当系统颜...
MFC CWnd 类 受保护方法:CWnd::OnSysChar
CWnd::OnSysChar 是 MFC(Microsoft Foundation Classes)中 CWnd 类的一个受保护方法,用于处理系统字符消息。当窗口拥有焦点并且用户按下一个非控制字符键时,系统将生成 WM_SYSCHAR 消息,并调用这个方法。以下是 OnSysChar 方法的典型声明:afx_msg void OnSysChar(UINT nChar, UINT nRepCnt, UINT nFlags); nChar 参数是按下的字符的虚拟键码。 nRepCnt 参数是重复次数。 nFlags 参数是键盘扫描码和其他标志。在实际应用中,您可以重写这个方法以执行在系统字符消息发生时需要进行的自定义操作。例如:void CYourWndClass::OnSysChar(UINT nChar, UINT nRepCnt, UINT nFlags){ // 执行系统字符消息时的自定义操作 // 调用基类实现 CWnd::OnSysChar(nChar, nRepCnt, nFlags);}在这个方法中,您可以根据按下的字符执行相应的操作。请注意,WM_SY...
MFC CWnd 类 受保护方法:CWnd::OnStyleChanging
CWnd::OnStyleChanging 是 MFC(Microsoft Foundation Classes)中 CWnd 类的一个受保护方法,用于处理窗口样式即将改变时的操作。当窗口的样式即将发生改变时,系统将调用这个方法,允许您在样式改变之前进行一些自定义操作。以下是 OnStyleChanging 方法的典型声明:afx_msg LRESULT OnStyleChanging(WPARAM wParam, LPARAM lParam);在实际应用中,您可以重写这个方法以执行在窗口样式即将改变时需要进行的自定义操作。例如:LRESULT CYourWndClass::OnStyleChanging(WPARAM wParam, LPARAM lParam){ // 执行窗口样式即将改变时的自定义操作 // 调用基类实现 return CWnd::OnStyleChanging(wParam, lParam);}在这个方法中,您可以访问 wParam 和 lParam 参数,执行与窗口样式改变相关的操作。为了使用这个方法,您需要在消息映射中添加对应的宏,例如:B...
MFC CWnd 类 受保护方法:CWnd::OnStyleChanged
CWnd::OnStyleChanged 是 MFC(Microsoft Foundation Classes)中 CWnd 类的一个受保护方法,用于处理窗口样式改变时的操作。当窗口的样式(例如 WS_DISABLED,WS_VISIBLE 等)发生改变时,系统将调用这个方法。以下是 OnStyleChanged 方法的典型声明:afx_msg void OnStyleChanged(int nStyleType, LPSTYLESTRUCT lpStyleStruct); nStyleType 参数是一个标志,指示哪种样式已经改变。 lpStyleStruct 参数是指向 STYLESTRUCT 结构的指针,其中包含有关样式更改的详细信息。在实际应用中,您可以重写这个方法以执行在窗口样式改变时需要进行的自定义操作。例如:void CYourWndClass::OnStyleChanged(int nStyleType, LPSTYLESTRUCT lpStyleStruct){ // 执行窗口样式改变时的自定义操作 // 调用基类实现 CWnd::OnStyleCh...
MFC CWnd 类 受保护方法:CWnd::OnSizing
CWnd::OnSizing 是 MFC(Microsoft Foundation Classes)中 CWnd 类的一个受保护方法,用于处理窗口正在调整大小时的操作。当用户调整窗口大小时,系统将持续调用这个方法,以便在调整过程中执行一些自定义操作。以下是 OnSizing 方法的典型声明:afx_msg void OnSizing(UINT fwSide, LPRECT pRect); fwSide 参数是一个标志,指示用户调整哪个边缘(上、下、左、右等)。 pRect 参数是一个指向表示窗口新位置和大小的 RECT 结构的指针。在实际应用中,您可以重写这个方法以执行在窗口调整大小时需要进行的自定义操作。例如:void CYourWndClass::OnSizing(UINT fwSide, LPRECT pRect){ // 执行窗口调整大小时的自定义操作 // 调用基类实现 CWnd::OnSizing(fwSide, pRect);}在这个方法中,您可以检查 fwSide 参数,了解用户是在调整窗口的哪个边缘,然后可以根据需要调整 pRect 中的值,以限制窗...
MFC CWnd 类 受保护方法:CWnd::OnSize
CWnd::OnSize 是 MFC(Microsoft Foundation Classes)中 CWnd 类的一个受保护方法,用于处理窗口大小变化时的操作。当窗口大小发生变化时,系统将调用这个方法。以下是 OnSize 方法的典型声明:afx_msg void OnSize(UINT nType, int cx, int cy); nType 参数是一个表示窗口大小变化类型的标志。 cx 和 cy 参数分别表示新的客户区域的宽度和高度。在实际应用中,您可以重写这个方法以执行在窗口大小变化时需要进行的自定义操作。例如:void CYourWndClass::OnSize(UINT nType, int cx, int cy){ // 执行窗口大小变化时的自定义操作 // 调用基类实现 CWnd::OnSize(nType, cx, cy);}在这个方法中,您可以根据需要检查 nType 参数,了解窗口大小变化的具体类型,然后执行相应的操作。cx 和 cy 参数表示新的客户区域的大小。为了使用这个方法,您需要在消息映射中添加对应的宏,例如:BEGIN_MESSAGE_...
MFC CWnd 类 受保护方法:CWnd::OnShowWindow
CWnd::OnShowWindow 是 MFC(Microsoft Foundation Classes)中 CWnd 类的一个受保护方法,用于处理窗口的显示和隐藏时的操作。当窗口即将被显示或隐藏时,系统将调用这个方法。以下是 OnShowWindow 方法的典型声明:afx_msg void OnShowWindow(BOOL bShow, UINT nStatus); bShow 参数是一个布尔值,指示窗口是被显示 (TRUE) 还是被隐藏 (FALSE)。 nStatus 参数是一个表示窗口状态的标志。在实际应用中,您可以重写这个方法以执行在窗口显示或隐藏时需要进行的自定义操作。例如:void CYourWndClass::OnShowWindow(BOOL bShow, UINT nStatus){ // 执行窗口显示或隐藏时的自定义操作 // 调用基类实现 CWnd::OnShowWindow(bShow, nStatus);}在这个方法中,您可以检查 bShow 参数,确定是显示还是隐藏操作,并执行相应的操作。nStatus 参数通常用于指示窗口的显示状...
MFC CWnd 类 受保护方法:CWnd::OnSettingChange
CWnd::OnSettingChange 是 MFC(Microsoft Foundation Classes)中 CWnd 类的一个受保护方法,用于处理系统设置发生变化时的操作。这个方法允许您在系统设置更改时执行一些自定义的处理。以下是 OnSettingChange 方法的典型声明:afx_msg void OnSettingChange(UINT uFlags, LPCTSTR lpszSection); uFlags 参数是一个标志,指示哪些设置已更改。 lpszSection 参数是一个字符串,指示与设置更改相关的部分。在实际应用中,您可以重写这个方法以执行在系统设置更改时需要进行的自定义操作。例如:void CYourWndClass::OnSettingChange(UINT uFlags, LPCTSTR lpszSection){ // 执行系统设置更改时的自定义操作 // 调用基类实现 CWnd::OnSettingChange(uFlags, lpszSection);}在这个方法中,您可以检查 uFlags 和 lpszSection 参数,...
MFC CWnd 类 受保护方法:CWnd::OnSetFocus
CWnd::OnSetFocus 是 MFC(Microsoft Foundation Classes)中 CWnd 类的一个受保护方法,用于处理窗口获得焦点时的操作。当窗口成为输入焦点的时候,系统将调用这个方法。以下是 OnSetFocus 方法的典型声明:afx_msg void OnSetFocus(CWnd* pOldWnd); pOldWnd 参数是指向先前拥有焦点的窗口的指针。在实际应用中,您可以重写这个方法以执行在窗口获得焦点时需要进行的自定义操作。例如:void CYourWndClass::OnSetFocus(CWnd* pOldWnd){ // 执行窗口获得焦点时的自定义操作 // 调用基类实现 CWnd::OnSetFocus(pOldWnd);}在这个方法中,您可以执行任何在窗口获得焦点时需要进行的操作。当然,您也可以根据需要访问 pOldWnd 参数,以了解哪个窗口失去了焦点。为了使用这个方法,您需要在消息映射中添加对应的宏,例如:BEGIN_MESSAGE_MAP(CYourWndClass, CWnd) // 其他消息映射... ...
MFC CWnd 类 受保护方法:CWnd::OnSetCursor
CWnd::OnSetCursor 是 MFC(Microsoft Foundation Classes)中 CWnd 类的一个受保护方法,用于处理设置光标的操作。这个方法在鼠标光标即将显示在窗口上时被调用,允许您自定义光标的外观。以下是 OnSetCursor 方法的典型声明:afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message); pWnd 参数是指向窗口的指针。 nHitTest 参数表示鼠标光标命中测试的类型。 message 参数表示 Windows 消息代码。在实际应用中,您可以重写这个方法以自定义光标的行为。例如:BOOL CYourWndClass::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message){ // 检查是否在窗口内 if (nHitTest == HTCLIENT) { // 设置自定义光标 ::SetCursor(::LoadCursor(NULL, IDC_HAND)); // 例...