// CPropSysReg1.cpp: 实现文件 // #include "pch.h" #include "MTerm2.h" #include "CPropSysReg1.h" #include "afxdialogex.h" // CPropSysReg1 对话框 IMPLEMENT_DYNAMIC(CPropSysReg1, CDialogEx) CPropSysReg1::CPropSysReg1(CWnd* pParent /*=nullptr*/) : CDialogEx(IDD_PROPPAGE_SYSREG1, pParent) { } CPropSysReg1::~CPropSysReg1() { } void CPropSysReg1::DoDataExchange(CDataExchange* pDX) { CDialogEx::DoDataExchange(pDX); } BEGIN_MESSAGE_MAP(CPropSysReg1, CDialogEx) ON_WM_VSCROLL() ON_WM_MOUSEHWHEEL() ON_WM_SIZE() END_MESSAGE_MAP() // CPropSysReg1 消息处理程序 BOOL CPropSysReg1::OnInitDialog() { CDialogEx::OnInitDialog(); // TODO: 在此添加额外的初始化 RECT rect0; GetClientRect(&rect0); CString s1; s1.Format(_T("OnInit H %d "), rect0.bottom - rect0.top); GetDlgItem(IDC_EDIT1)->SetWindowText(s1); ShowParams(); return TRUE; // return TRUE unless you set the focus to a control // 异常: OCX 属性页应返回 FALSE } void CPropSysReg1::OnSize(UINT nType, int cx, int cy) { CDialogEx::OnSize(nType, cx, cy); CString s1; s1.Format(_T("PropSysReg OnSize %d %d %d"),nType, cx, cy); SysLog(s1); // TODO: 在此处添加消息处理程序代码 } int CPropSysReg1::ShowParams() { // TODO: 在此处添加实现代码. SysLog(_T("PropSysReg ShowParams ")); return 0; } int CPropSysReg1::GetParams() { // TODO: 在此处添加实现代码. SysLog(_T("PropSysReg GetParams")); return 0; } void CPropSysReg1::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) { // TODO: 在此添加消息处理程序代码和/或调用默认值 GetDlgItem(IDC_EDIT2)->SetWindowText(_T("OnVScroll")); CString s1; s1.Format(_T("PropSysReg OnVScroll %d %d"), nSBCode,nPos); SysLog(s1); int nMin, nMax; int TempPos; if (pScrollBar == NULL) { this->GetScrollRange(SB_VERT, &nMin, &nMax); TempPos = this->GetScrollPos(SB_VERT); }else{ pScrollBar->GetScrollRange(&nMin, &nMax); //取得滚动条范围 TempPos = pScrollBar->GetScrollPos(); } switch (nSBCode) { case SB_THUMBPOSITION://拖动滑块 case SB_THUMBTRACK: if (pScrollBar == NULL) { SetScrollPos(SB_VERT, nPos); } else{ pScrollBar->SetScrollPos(nPos); } TempPos = nPos; break; case SB_LINEUP://点击上边/左边的箭头 if (TempPos > 1) { TempPos--; } if (pScrollBar == NULL) { SetScrollPos(SB_VERT, TempPos); } else { pScrollBar->SetScrollPos(TempPos); } break; case SB_LINEDOWN://点击下边/右边的箭头 if (TempPos < nMax) { TempPos++; } if (pScrollBar == NULL) { SetScrollPos(SB_VERT, TempPos); } else { pScrollBar->SetScrollPos(TempPos); } break; case SB_PAGEUP: // 如果向上/左滚动一页 if (TempPos > 10) TempPos -= 10; if (pScrollBar == NULL) { SetScrollPos(SB_VERT, TempPos); } else { pScrollBar->SetScrollPos(TempPos); } break; case SB_PAGEDOWN: // 如果向下/右滚动一页 if (TempPos < nMax - 10) TempPos += 10; if (pScrollBar == NULL) { SetScrollPos(SB_VERT, TempPos); } else { pScrollBar->SetScrollPos(TempPos); } break; } int nNewPos = -TempPos; int Scrolldel = nNewPos - m_nScrollPos; s1.Format(_T("PropSysReg Scroll %d %d %d"), m_nScrollPos, nNewPos, Scrolldel); SysLog(s1); this->ScrollWindow(0, Scrolldel); m_nScrollPos += Scrolldel; CDialogEx::OnVScroll(nSBCode, nPos, pScrollBar); } void CPropSysReg1::OnMouseHWheel(UINT nFlags, short zDelta, CPoint pt) { // 此功能要求 Windows Vista 或更高版本。 // _WIN32_WINNT 符号必须 >= 0x0600。 // TODO: 在此添加消息处理程序代码和/或调用默认值 GetDlgItem(IDC_EDIT2)->SetWindowText(_T("OnMouseHWheel")); SysLog(_T("PropSysReg OnMouseHWheel")); CDialogEx::OnMouseHWheel(nFlags, zDelta, pt); }