2.2. Оконная процедура
WindowProc — это «оконная процедура. Каждое окно, независимо от того, является ли оно большим, как главное окно приложения для Windows, или маленьким, как кнопка, имеет соответствующую оконную процедуру. Оконная процедура — это способ инкапсулирования кода, отвечающего за ввод информации (обычно с клавиатуры или мыши) и за вывод информации на экран. Оконная процедура делает это, посылая «сообщения» окну. WindowProc вызывается только из Windows. Однако, в WinMain имеется ссылка на WindowProc, поэтому прототип этой функции описывается в самом начале программы, еще до определения WinMain.
Блок-схема:
Инициализация окна
Перерисовка рабочей
области
Обработка сообщений
от дочерних окон
Ликвидация окна
2.3. Функция kkp
Функция расчёта модуля комплексного коэффициента передачи для заданной частоты.
Блок-схема:
1 0
h=0
h=1
0
1
x[0][1]=complex<double>(0,2*M_PI*f*lc[m]);
x[1][0]=complex<double>(0,0);
x[1][0]=complex<double>(0,2*M_PI*f*lc[m]);
x[0][1]=complex<double>(0,0);
0
1
1 0
1
b[i][j]+=a[i][l]*x[l][j]
0
1 0
1
a[i][j]=b[i][j];
b[i][j]=complex<double>(0,0);
k=(sqrt(complex<double>(rg,0)/complex<double>(rn,0))*complex<double>(2,0))/
(a[0][0]+a[0][1]/complex<double>(rn,0)+a[1][0]*complex<double>(rg,0)+a[1][1])
2.4. Функция setka
Функция рисующая сетку для заданных значений клиентской области.
Блок-схема:
xstep=fstep*(xmax-xmin)/(fmax-fmin);
ystep=ustep*(ymax-ymin)/(umax-umin);
0
1
k=fmin;
0
1
MoveToEx(hdc,x,ymin,NULL);
LineTo(hdc,
x,ymax);
TextOut(hdc,x-8,ymax+10,s,strlen(s));
k+=fstep;
MoveToEx(hdc,xmin,y,NULL);
LineTo(hdc,xmax,y);
TextOut(hdc,xmin-35,y-10,s,strlen(s));
k1-=ustep;
k1=umax;
0
1
2.5. Функция graphic
Функция, рисующая график, который показывает зависимость комплексного коэффициента передачи от частоты в заданном диапазоне.
Блок-схема:
GZonPIX=(fmax-fmin)/(xmax-xmin); PIXonK=(ymax-ymin)/(umax-umin);
MoveToEx(hdc,xmin,ymax-(kkp(fmin*1e6)-umin/1000)*PIXonK*1000,NULL)
0
LineTo(hdc,p,ymax-(kkp(((p-xmin)*GZonPIX+fmin)*1e6)*1000-umin)*PIXonK)
MoveToEx(hdc,p,ymax-(kkp(((p-xmin)*GZonPIX+fmin)*1e6)*1000-umin)*PIXonK,NULL)
0