zxd
2023-09-28 aac3b319965967f465881f3a8961904d57b6f337
提交 | 用户 | age
418cb3 1 // CPropSysReg1.cpp: 实现文件
Q 2 //
3
4 #include "pch.h"
5 #include "MTerm1.h"
6 #include "PropSysReg1.h"
7 #include "afxdialogex.h"
8
9
10 // CPropSysReg1 对话框
11
12 IMPLEMENT_DYNAMIC(CPropSysReg1, CMyPropPage)
13
14 CPropSysReg1::CPropSysReg1(CWnd* pParent /*=nullptr*/)
15     : CMyPropPage(IDD_PROPPAGE_SYSREG1, pParent)
16 {
17
18 }
19
20 CPropSysReg1::~CPropSysReg1()
21 {
22 }
23
24 void CPropSysReg1::DoDataExchange(CDataExchange* pDX)
25 {
26     CDialogEx::DoDataExchange(pDX);
27 }
28
29
30 BEGIN_MESSAGE_MAP(CPropSysReg1, CDialogEx)
31     ON_WM_VSCROLL()
32     ON_WM_MOUSEHWHEEL()
33     ON_WM_SIZE()
34 END_MESSAGE_MAP()
35
36
37 // CPropSysReg1 消息处理程序
38
39
40 BOOL CPropSysReg1::OnInitDialog()
41 {
42     CDialogEx::OnInitDialog();
43
44     // TODO:  在此添加额外的初始化
45     RECT rect0;
46     GetClientRect(&rect0);
47     CString s1;
48     s1.Format(_T("OnInit H %d "), rect0.bottom - rect0.top);
49 //    GetDlgItem(IDC_EDIT1)->SetWindowText(s1);
50 //    ShowParams();
51
52     return TRUE;  // return TRUE unless you set the focus to a control
53                   // 异常: OCX 属性页应返回 FALSE
54 }
55
56 int CPropSysReg1::DelayInit()
57 {
58     // TODO: 在此处添加实现代码.
59     return 0;
60 }
61
62 void CPropSysReg1::OnSize(UINT nType, int cx, int cy)
63 {
64     CDialogEx::OnSize(nType, cx, cy);
65     CString s1;
66     s1.Format(_T("PropSysReg OnSize %d %d %d"),nType, cx, cy);
67     SysLog(s1);
68     // TODO: 在此处添加消息处理程序代码
69 }
70
71 int CPropSysReg1::ShowParams()
72 {
73     // TODO: 在此处添加实现代码.
74     SysLog(_T("PropSysReg ShowParams "));
75     return 0;
76 }
77
78 int CPropSysReg1::GetParams()
79 {
80     // TODO: 在此处添加实现代码.
81     SysLog(_T("PropSysReg GetParams"));
82     return 0;
83 }
84
85 void CPropSysReg1::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
86 {
87     // TODO: 在此添加消息处理程序代码和/或调用默认值
88     GetDlgItem(IDC_EDIT2)->SetWindowText(_T("OnVScroll"));
89     CString s1;
90     s1.Format(_T("PropSysReg OnVScroll %d %d"), nSBCode,nPos);
91     SysLog(s1);
92     int nMin, nMax;
93     int TempPos;
94     if (pScrollBar == NULL) {
95         this->GetScrollRange(SB_VERT, &nMin, &nMax);
96         TempPos = this->GetScrollPos(SB_VERT);
97     }else{
98         pScrollBar->GetScrollRange(&nMin, &nMax);  //取得滚动条范围
99         TempPos = pScrollBar->GetScrollPos();
100     }
101
102     switch (nSBCode)
103     {
104     case SB_THUMBPOSITION://拖动滑块
105     case SB_THUMBTRACK:
106         if (pScrollBar == NULL)    {
107             SetScrollPos(SB_VERT, nPos);
108         }
109         else{
110             pScrollBar->SetScrollPos(nPos);
111         }
112         TempPos = nPos;
113         break;
114     case SB_LINEUP://点击上边/左边的箭头
115         if (TempPos > 1)
116         {
117             TempPos--;
118         }
119         if (pScrollBar == NULL) {    SetScrollPos(SB_VERT, TempPos);    }
120         else {    pScrollBar->SetScrollPos(TempPos);    }
121         break;
122     case SB_LINEDOWN://点击下边/右边的箭头
123         if (TempPos < nMax)
124         {
125             TempPos++;
126         }
127         if (pScrollBar == NULL) { SetScrollPos(SB_VERT, TempPos); }
128         else { pScrollBar->SetScrollPos(TempPos); }
129         break;
130
131     case SB_PAGEUP:   // 如果向上/左滚动一页
132         if (TempPos > 10) TempPos -= 10;
133         if (pScrollBar == NULL) { SetScrollPos(SB_VERT, TempPos); }
134         else { pScrollBar->SetScrollPos(TempPos); }
135         break;
136
137     case SB_PAGEDOWN:    // 如果向下/右滚动一页
138         if (TempPos < nMax - 10) TempPos += 10;
139         if (pScrollBar == NULL) { SetScrollPos(SB_VERT, TempPos); }
140         else { pScrollBar->SetScrollPos(TempPos); }
141         break;
142     }
143     int nNewPos = -TempPos;
144     int Scrolldel = nNewPos - m_nScrollPos;
145     s1.Format(_T("PropSysReg Scroll %d %d %d"), m_nScrollPos, nNewPos, Scrolldel);
146     SysLog(s1);
147     this->ScrollWindow(0, Scrolldel);
148     m_nScrollPos += Scrolldel;
149
150     CDialogEx::OnVScroll(nSBCode, nPos, pScrollBar);
151 }
152
153
154 void CPropSysReg1::OnMouseHWheel(UINT nFlags, short zDelta, CPoint pt)
155 {
156     // 此功能要求 Windows Vista 或更高版本。
157     // _WIN32_WINNT 符号必须 >= 0x0600。
158     // TODO: 在此添加消息处理程序代码和/或调用默认值
159     GetDlgItem(IDC_EDIT2)->SetWindowText(_T("OnMouseHWheel"));
160     SysLog(_T("PropSysReg OnMouseHWheel"));
161     CDialogEx::OnMouseHWheel(nFlags, zDelta, pt);
162 }
163