QuakeGod
2021-12-29 0a20f73829d9d53e060927f23c2777f10347ac65
提交 | 用户 | age
0ed438 1 // CPropSysReg1.cpp: 实现文件
Q 2 //
3
4 #include "pch.h"
5 #include "MTerm2.h"
6 #include "CPropSysReg1.h"
7 #include "afxdialogex.h"
8
9
10 // CPropSysReg1 对话框
11
12 IMPLEMENT_DYNAMIC(CPropSysReg1, CDialogEx)
13
14 CPropSysReg1::CPropSysReg1(CWnd* pParent /*=nullptr*/)
15     : CDialogEx(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 void CPropSysReg1::OnSize(UINT nType, int cx, int cy)
57 {
58     CDialogEx::OnSize(nType, cx, cy);
59     CString s1;
60     s1.Format(_T("PropSysReg OnSize %d %d %d"),nType, cx, cy);
61     SysLog(s1);
62     // TODO: 在此处添加消息处理程序代码
63 }
64
65 int CPropSysReg1::ShowParams()
66 {
67     // TODO: 在此处添加实现代码.
68     SysLog(_T("PropSysReg ShowParams "));
69     return 0;
70 }
71
72 int CPropSysReg1::GetParams()
73 {
74     // TODO: 在此处添加实现代码.
75     SysLog(_T("PropSysReg GetParams"));
76     return 0;
77 }
78
79 void CPropSysReg1::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
80 {
81     // TODO: 在此添加消息处理程序代码和/或调用默认值
82     GetDlgItem(IDC_EDIT2)->SetWindowText(_T("OnVScroll"));
83     CString s1;
84     s1.Format(_T("PropSysReg OnVScroll %d %d"), nSBCode,nPos);
85     SysLog(s1);
86     int nMin, nMax;
87     int TempPos;
88     if (pScrollBar == NULL) {
89         this->GetScrollRange(SB_VERT, &nMin, &nMax);
90         TempPos = this->GetScrollPos(SB_VERT);
91     }else{
92         pScrollBar->GetScrollRange(&nMin, &nMax);  //取得滚动条范围
93         TempPos = pScrollBar->GetScrollPos();
94     }
95
96     switch (nSBCode)
97     {
98     case SB_THUMBPOSITION://拖动滑块
99     case SB_THUMBTRACK:
100         if (pScrollBar == NULL)    {
101             SetScrollPos(SB_VERT, nPos);
102         }
103         else{
104             pScrollBar->SetScrollPos(nPos);
105         }
106         TempPos = nPos;
107         break;
108     case SB_LINEUP://点击上边/左边的箭头
109         if (TempPos > 1)
110         {
111             TempPos--;
112         }
113         if (pScrollBar == NULL) {    SetScrollPos(SB_VERT, TempPos);    }
114         else {    pScrollBar->SetScrollPos(TempPos);    }
115         break;
116     case SB_LINEDOWN://点击下边/右边的箭头
117         if (TempPos < nMax)
118         {
119             TempPos++;
120         }
121         if (pScrollBar == NULL) { SetScrollPos(SB_VERT, TempPos); }
122         else { pScrollBar->SetScrollPos(TempPos); }
123         break;
124
125     case SB_PAGEUP:   // 如果向上/左滚动一页
126         if (TempPos > 10) TempPos -= 10;
127         if (pScrollBar == NULL) { SetScrollPos(SB_VERT, TempPos); }
128         else { pScrollBar->SetScrollPos(TempPos); }
129         break;
130
131     case SB_PAGEDOWN:    // 如果向下/右滚动一页
132         if (TempPos < nMax - 10) TempPos += 10;
133         if (pScrollBar == NULL) { SetScrollPos(SB_VERT, TempPos); }
134         else { pScrollBar->SetScrollPos(TempPos); }
135         break;
136     }
137     int nNewPos = -TempPos;
138     int Scrolldel = nNewPos - m_nScrollPos;
139     s1.Format(_T("PropSysReg Scroll %d %d %d"), m_nScrollPos, nNewPos, Scrolldel);
140     SysLog(s1);
141     this->ScrollWindow(0, Scrolldel);
142     m_nScrollPos += Scrolldel;
143
144     CDialogEx::OnVScroll(nSBCode, nPos, pScrollBar);
145 }
146
147
148 void CPropSysReg1::OnMouseHWheel(UINT nFlags, short zDelta, CPoint pt)
149 {
150     // 此功能要求 Windows Vista 或更高版本。
151     // _WIN32_WINNT 符号必须 >= 0x0600。
152     // TODO: 在此添加消息处理程序代码和/或调用默认值
153     GetDlgItem(IDC_EDIT2)->SetWindowText(_T("OnMouseHWheel"));
154     SysLog(_T("PropSysReg OnMouseHWheel"));
155     CDialogEx::OnMouseHWheel(nFlags, zDelta, pt);
156 }
157