-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMFCApplication1Dlg.cpp
More file actions
215 lines (163 loc) · 4.92 KB
/
MFCApplication1Dlg.cpp
File metadata and controls
215 lines (163 loc) · 4.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
// MFCApplication1Dlg.cpp : ôàéë ðåàëèçàöèè
//
#include "stdafx.h"
#include "MFCApplication1.h"
#include "MFCApplication1Dlg.h"
#include "afxdialogex.h"
#include <cstring>
#include "GetVolume.h"
#include <time.h>
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// Äèàëîãîâîå îêíî CAboutDlg èñïîëüçóåòñÿ äëÿ îïèñàíèÿ ñâåäåíèé î ïðèëîæåíèè
class CAboutDlg : public CDialogEx
{
public:
CAboutDlg();
// Äàííûå äèàëîãîâîãî îêíà
enum { IDD = IDD_ABOUTBOX };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // ïîääåðæêà DDX/DDV
// Ðåàëèçàöèÿ
protected:
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialogEx(CAboutDlg::IDD)
{
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx)
END_MESSAGE_MAP()
// äèàëîãîâîå îêíî CMFCApplication1Dlg
CMFCApplication1Dlg::CMFCApplication1Dlg(CWnd* pParent /*=NULL*/)
: CDialogEx(CMFCApplication1Dlg::IDD, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CMFCApplication1Dlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Control(pDX, IDC_PROGCTRL1, CTRL_PROGRESSBAR_CUSTOM);
}
BEGIN_MESSAGE_MAP(CMFCApplication1Dlg, CDialogEx)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
//ON_NOTIFY(NM_CUSTOMDRAW, IDC_PROGRESS1, &CMFCApplication1Dlg::OnNMCustomdrawProgress1)
END_MESSAGE_MAP()
// îáðàáîò÷èêè ñîîáùåíèé CMFCApplication1Dlg
BOOL CMFCApplication1Dlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
// Äîáàâëåíèå ïóíêòà "Î ïðîãðàììå..." â ñèñòåìíîå ìåíþ.
// IDM_ABOUTBOX äîëæåí áûòü â ïðåäåëàõ ñèñòåìíîé êîìàíäû.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
BOOL bNameValid;
CString strAboutMenu;
bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);
ASSERT(bNameValid);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// Çàäàåò çíà÷îê äëÿ ýòîãî äèàëîãîâîãî îêíà. Ñðåäà äåëàåò ýòî àâòîìàòè÷åñêè,
// åñëè ãëàâíîå îêíî ïðèëîæåíèÿ íå ÿâëÿåòñÿ äèàëîãîâûì
SetIcon(m_hIcon, TRUE); // Êðóïíûé çíà÷îê
SetIcon(m_hIcon, FALSE); // Ìåëêèé çíà÷îê
// TODO: äîáàâüòå äîïîëíèòåëüíóþ èíèöèàëèçàöèþ
int start_value = GetVolume();
CTRL_PROGRESSBAR_CUSTOM.put_Value(start_value);
//************************/*****************************************/*****************************************/*******************************
return TRUE; // âîçâðàò çíà÷åíèÿ TRUE, åñëè ôîêóñ íå ïåðåäàí ýëåìåíòó óïðàâëåíèÿ
}
void CMFCApplication1Dlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else
{
CDialogEx::OnSysCommand(nID, lParam);
}
}
// Ïðè äîáàâëåíèè êíîïêè ñâåðòûâàíèÿ â äèàëîãîâîå îêíî íóæíî âîñïîëüçîâàòüñÿ ïðèâåäåííûì íèæå êîäîì,
// ÷òîáû íàðèñîâàòü çíà÷îê. Äëÿ ïðèëîæåíèé MFC, èñïîëüçóþùèõ ìîäåëü äîêóìåíòîâ èëè ïðåäñòàâëåíèé,
// ýòî àâòîìàòè÷åñêè âûïîëíÿåòñÿ ðàáî÷åé îáëàñòüþ.
void CMFCApplication1Dlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // êîíòåêñò óñòðîéñòâà äëÿ ðèñîâàíèÿ
SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
// Âûðàâíèâàíèå çíà÷êà ïî öåíòðó êëèåíòñêîãî ïðÿìîóãîëüíèêà
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Íàðèñóéòå çíà÷îê
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialogEx::OnPaint();
}
}
// Ñèñòåìà âûçûâàåò ýòó ôóíêöèþ äëÿ ïîëó÷åíèÿ îòîáðàæåíèÿ êóðñîðà ïðè ïåðåìåùåíèè
// ñâåðíóòîãî îêíà.
HCURSOR CMFCApplication1Dlg::OnQueryDragIcon()
{
return static_cast<HCURSOR>(m_hIcon);
}
void CMFCApplication1Dlg::OnNMCustomdrawProgress1(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMCUSTOMDRAW pNMCD = reinterpret_cast<LPNMCUSTOMDRAW>(pNMHDR);
// TODO: äîáàâüòå ñâîé êîä îáðàáîò÷èêà óâåäîìëåíèé
*pResult = 0;
}
BEGIN_EVENTSINK_MAP(CMFCApplication1Dlg, CDialogEx)
ON_EVENT(CMFCApplication1Dlg, IDC_PROGCTRL1, DISPID_CLICK, CMFCApplication1Dlg::ClickProgctrl1, VTS_NONE)
END_EVENTSINK_MAP()
int value = 0;
int offset = 10;
void CMFCApplication1Dlg::ClickProgctrl1()
{
// TODO: äîáàâüòå ñâîé êîä îáðàáîò÷èêà ñîîáùåíèé
}
BOOL CMFCApplication1Dlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: äîáàâüòå ñïåöèàëèçèðîâàííûé êîä èëè âûçîâ áàçîâîãî êëàññà
CString str_value;
if (pMsg->message == WM_KEYDOWN)
{
if (pMsg->wParam == VK_VOLUME_UP)
{
int volume = GetVolume();
//str_value.Format(_T("key pressed:\t%d"), volume);
CTRL_PROGRESSBAR_CUSTOM.put_Value(volume);
}
else if (pMsg->wParam == VK_VOLUME_DOWN)
{
int volume = GetVolume();
//str_value.Format(_T("key pressed:\t%d"), volume);
CTRL_PROGRESSBAR_CUSTOM.put_Value(volume);
}
else if (pMsg->wParam == VK_VOLUME_MUTE)
{
}
}
return CDialogEx::PreTranslateMessage(pMsg);
}