|
ПРИЛОЖЕНИЕ Б
#include "stdafx.h"
#include "Graph.h"
#include "resource.h"
LRESULT CALLBACK WndMain(HWND,UINT,WPARAM,LPARAM);
LRESULT CALLBACK WndProcPopup(HWND,UINT,WPARAM,LPARAM);
BOOL CALLBACK DlgProc(HWND,UINT,WPARAM,LPARAM);
HINSTANCE hInst;
HWND hMain,hDialog,hPopup;
Graph Grphcs;
double M_PI=3.141592;
int KoefN = 2,Kvantov = 16;
double FiltrOw=0,T = 4, fa = 1/T,fs =fa/KoefN, dx=fs, A = 150, Skvaz = 3, Filtr4ast =300, KolPeriod=1,StepOfQuantum = fa/100;
const int KolOt4 =300;
char StrokaOwibki[30];
double koef = 0;
int Ox =0, Oy = 0;
BOOL FPram=false, FIshod = false, FDisc = false, FFiltr = false,FKvant=false, FRevers = false,reset=false;
RECT rect;
double *MAS4astot,*MASdisc,*MASpramoe,*MASpramoeRE,*MASpramoeIM,*MASobratRE,*MASobratIM,*MASobrat,*MASfiltr,*MASfiltrRE,*MASfiltrIM;
// Задание состояния пунктов меню
BOOL SetMenuItem(HMENU hMenu, UINT uId, UINT fState)
{
MENUITEMINFO MyMenu;
MyMenu.cbSize=sizeof(MENUITEMINFO);
MyMenu.fMask=MIIM_STATE|MIIM_ID;
MyMenu.fState=fState;
MyMenu.wID=uId;
return SetMenuItemInfo(hMenu, uId, FALSE, &MyMenu);
}
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
WNDCLASS MainWindow,wcPopup;
MSG msg;
hInst = hInstance;
if (FindWindow("Main",NULL))
{
if (MessageBox(hMain,
"Можно запускать только один экземпляр приложения!\n Завершить текущее приложение?",
"Ошибка",
MB_YESNO|MB_ICONSTOP) == IDYES)
{
if (IsIconic(hMain))
ShowWindow(hMain,SW_RESTORE);
SetForegroundWindow(hMain);
return 0;
}
}
memset(&MainWindow,0,sizeof(MainWindow));
MainWindow.style = CS_HREDRAW|CS_VREDRAW;
MainWindow.lpfnWndProc = WndMain;
MainWindow.cbClsExtra = MainWindow.cbWndExtra = 0;
MainWindow.hInstance = hInst;
MainWindow.hIcon = LoadIcon(NULL,IDI_APPLICATION);
MainWindow.hCursor = LoadCursor(NULL,IDC_ARROW);
MainWindow.hbrBackground = (HBRUSH)CreateSolidBrush(RGB(206,206,206));
MainWindow.lpszClassName = "Main";
MainWindow.lpszMenuName = MAKEINTRESOURCE(IDR_MYMENU);
RegisterClass(&MainWindow);
if ((hMain = CreateWindow("Main",
"Курсовая работа ст.гр. СПР-12 Гизатулин А.С.",
WS_OVERLAPPEDWINDOW,
0,
0,
GetSystemMetrics(SM_CXSCREEN),
GetSystemMetrics(SM_CYSCREEN),
NULL,
NULL,
hInstance,
NULL)) == NULL)
{
MessageBox (hMain,"Невозможно создать окно!","Ошибка",MB_OK|MB_ICONSTOP);
return false;
}
ShowWindow(hMain,SW_SHOWMAXIMIZED);
UpdateWindow(hMain);
memset(&wcPopup,0,sizeof(wcPopup));
wcPopup.hbrBackground=(HBRUSH) CreateSolidBrush(RGB(206,206,206));
wcPopup.hInstance=hInst;
wcPopup.lpfnWndProc=WndProcPopup;
wcPopup.style = CS_HREDRAW|CS_VREDRAW;
wcPopup.lpszClassName="PopupWnd";
wcPopup.lpszMenuName=NULL;
wcPopup.cbClsExtra = 0;
wcPopup.cbWndExtra = 0;
RegisterClass(&wcPopup);
if ((hPopup = CreateWindow("PopupWnd",
"Временное окно",
WS_OVERLAPPEDWINDOW|WS_CAPTION,
GetSystemMetrics(SM_CXSCREEN)/2,
0,
GetSystemMetrics(SM_CXSCREEN)/2,
GetSystemMetrics(SM_CYSCREEN),
NULL,
NULL,
hInst,
NULL)) == NULL)
{
MessageBox (hMain,"Невозможно создать окно!","Ошибка",MB_OK|MB_ICONSTOP);
return false;
}
UpdateWindow(hPopup);
hDialog = CreateDialog(hInst,(LPCTSTR)IDD_OLE_PROPPAGE_SMALL,hMain,(DLGPROC) DlgProc);
if (hDialog == NULL)
{
DestroyWindow(hMain);
return false;
}
ShowWindow(hDialog,SW_NORMAL);
UpdateWindow(hDialog);
while (GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
double Y (double temp) // Описываем ВИД сигнала
{
double x = temp;
while (x > T) x -= T;
if (x < T - Skvaz)
return A;
else
return 0;
};
LRESULT CALLBACK WndMain(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)//Оконная функция главного окна
{
int i,j;
switch(msg)
{
case WM_PAINT:
{if (!reset)
{
if (FIshod)
{
Grphcs.SetCvet (RGB(0,0,0),RGB(0,0,0),RGB(206,206,206),RGB(163,0,0),RGB(0,0,0));
Grphcs.SetStep_X (KolPeriod/10/10);
Grphcs.SetXYs (Y,1400);
Grphcs.Setka (hWnd, fa*KolPeriod*3,0);
Grphcs.RazmerLinii (10);
Grphcs.OSI (hWnd);
Grphcs.Grafik (hWnd,0,0);
Grphcs.Text (hWnd,0.01,-0.03,"--- Исходный сигнал",RGB(163,0,0));
}
if (FDisc &&!FPram)
{
Grphcs.SetCvet (RGB(0,0,0),RGB(0,0,0),RGB(206,206,206),RGB(27,143,0),RGB(0,0,0));
Grphcs.RazmerLinii (4);
Grphcs.SetXYs (MASdisc,KolOt4,fs,false);
Grphcs.Setka (hWnd, fa*KolPeriod*3,0);
Grphcs.OSI (hWnd);
Grphcs.VerLine(hWnd);
Grphcs.Text (hWnd,0.01,-0.06,"--- Дискретный сигнал",RGB(27,143,0));
}
if (FKvant &&!FPram)
{
Grphcs.SetCvet (RGB(0,0,0),RGB(0,0,0),RGB(206,206,206),RGB(178,180,0),RGB(0,0,0));
Grphcs.RazmerLinii (4);
Grphcs.Setka (hWnd, fa*KolPeriod*3,0);
Grphcs.OSI (hWnd);
Grphcs.Kvant (hWnd,Kvantov,StepOfQuantum,0,(KolOt4-1)*fs,Y,koef);
Grphcs.Text (hWnd,0.01,-0.09,"--- Квантованый сигнал",RGB(178,180,0));
}
if (FRevers)
{
Grphcs.SetCvet (RGB(0,0,0),RGB(0,0,0),RGB(206,206,206),RGB(101,111,125),RGB(0,0,0));
Grphcs.RazmerLinii (6);
Grphcs.SetXYs (MASobrat,KolOt4,fs,false);
Grphcs.Setka (hWnd, fa*KolPeriod*3,0);
Grphcs.OSI (hWnd);
Grphcs.Grafik (hWnd,0,0);
Grphcs.Text (hWnd,0.01,-0.06,"--- Восстановленый сигнал без фильтрации",RGB(101,111,125));
}
if (FFiltr)
{
Grphcs.SetCvet (RGB(0,0,0),RGB(0,0,0),RGB(206,206,206),RGB(0,0,255),RGB(0,0,0));
Grphcs.RazmerLinii (4);
Grphcs.SetXYs (MASfiltr,KolOt4,fs,false);
Grphcs.Setka (hWnd, fa*KolPeriod*3,0);
Grphcs.OSI (hWnd);
Grphcs.Grafik (hWnd,0,0);
Grphcs.Text (hWnd,0.01,-0.09,"--- Восстановленый сигнал",RGB(0,0,255));
Grphcs.Text (hWnd,0.7,-0.09,StrokaOwibki,RGB(163,0,0));
}
}
}
break;
case WM_KEYDOWN:
{
RECT client_rect;
GetClientRect (hWnd,&client_rect);
switch ((int)wParam)
{
case 65://A
Grphcs.Zoom(-100,0,1,1);
break;
case 68://D
Grphcs.Zoom(100,0,1,1);
break;
case 83://S
Grphcs.Zoom(0,100,1,1);
break;
case 87://W
Grphcs.Zoom(0,-100,1,1);
break;
case VK_RIGHT:
Grphcs.Zoom(0,0,1.25,1);
break;
case VK_LEFT:
Grphcs.Zoom(0,0,-1.25,1);
break;
case VK_UP:
Grphcs.Zoom(0,0,1,1.25);
break;
case VK_DOWN:
Grphcs.Zoom(0,0,1,-1.25);
break;
case VK_RETURN:
Grphcs.Zoom(0,0,0,0);
Grphcs.SetOSI (hWnd);
dx=fs;
break;
}
InvalidateRect(NULL,NULL,TRUE);
Grphcs.Setka (hWnd, fa*KolPeriod*3,0);
UpdateWindow (hWnd);
}
break;
case WM_COMMAND:
{
switch(LOWORD(wParam))
{
case ID_RESET:
reset=true;
FPram=false;
FIshod = false;
FDisc = false;
FKvant=false;
FFiltr = false;
FRevers = false;
InvalidateRect(NULL,NULL,1);
Grphcs.Clear();
SetMenuItem(GetMenu(hMain),ID_ISHOD,MFS_ENABLED);
SetMenuItem(GetMenu(hWnd),ID_DISC,MFS_DISABLED);
SetMenuItem(GetMenu(hWnd),ID_KVANT,MFS_DISABLED);
SetMenuItem(GetMenu(hWnd),ID_PRAMOE,MFS_DISABLED);
SetMenuItem(GetMenu(hWnd),ID_OBRATNOE,MFS_DISABLED);
SetMenuItem(GetMenu(hWnd),ID_FILTR,MFS_DISABLED);
ShowWindow(hDialog,SW_NORMAL);
dx=fs;
break;
case ID_ISHOD:
FIshod = true;
Grphcs.SetXKoificient(koef,Ox,Oy);
Grphcs.SetCvet (RGB(0,0,0),RGB(0,0,0),RGB(206,206,206),RGB(163,0,0),RGB(0,0,0));
Grphcs.SetOSI (hWnd);
Grphcs.SetStep_X (KolPeriod/100);
Grphcs.SetXYs (Y,1400);
Grphcs.Setka (hWnd,fa*KolPeriod*3,0);
Grphcs.RazmerLinii (10);
Grphcs.OSI (hWnd);
Grphcs.Grafik (hWnd,0,0);
Grphcs.Text (hWnd,0.01,-0.03,"--- Исходный сигнал",RGB(163,0,0));
koef = Grphcs.GetXKoificient();
Ox = Grphcs.GetOSx();
Oy = Grphcs.GetOSy();
SetMenuItem(GetMenu(hWnd),ID_ISHOD,MFS_DISABLED);
SetMenuItem(GetMenu(hWnd),ID_DISC,MFS_ENABLED);
break;
case ID_DISC:
{
if (FIshod)
{
if (MASdisc)
delete [] MASdisc;
if (MAS4astot)
delete [] MAS4astot;
MASdisc = new double [KolOt4];
MAS4astot = new double [KolOt4];
int k = 2;
for (int i=0;i<KolOt4;i++)
{
MAS4astot [i] = i*fs;
MASdisc [i] = Y (i*fs);
}
Grphcs.SetCvet (RGB(0,0,0),RGB(0,0,0),RGB(206,206,206),RGB(27,143,0),RGB(0,0,0));
//Grphcs.SetOSI (hWnd);
Grphcs.RazmerLinii (4);
Grphcs.SetXYs (MASdisc,KolOt4,fs,false);
Grphcs.Setka (hWnd, fa*KolPeriod*3,0);
Grphcs.OSI (hWnd);
//Grphcs.Grafik (hWnd,0,0);
Grphcs.VerLine(hWnd);///////////////
Grphcs.Text (hWnd,0.01,-0.06,"--- Дискретный сигнал",RGB(27,143,0));
FDisc = true;
}
SetMenuItem(GetMenu(hWnd),ID_DISC,MFS_DISABLED);
SetMenuItem(GetMenu(hWnd),ID_KVANT,MFS_ENABLED);
}
break;
case ID_KVANT:
{if (FDisc){
Grphcs.SetCvet (RGB(0,0,0),RGB(0,0,0),RGB(206,206,206),RGB(178,180,0),RGB(0,0,0));
Grphcs.RazmerLinii (4);
Grphcs.Kvant (hWnd,Kvantov,StepOfQuantum,0,(KolOt4-1)*fs,Y,koef);
Grphcs.Text (hWnd,0.01,-0.09,"--- Квантованый сигнал",RGB(178,180,0));
FKvant=true;
SetMenuItem(GetMenu(hWnd),ID_KVANT,MFS_DISABLED);
SetMenuItem(GetMenu(hWnd),ID_PRAMOE,MFS_ENABLED);
}
}
break;
case ID_PRAMOE:
{
if (FDisc)
{
if (MASpramoe)
delete [] MASpramoe;
if (MASpramoeRE)
delete [] MASpramoeRE;
if (MASpramoeIM)
delete [] MASpramoeIM;
MASpramoe = new double [KolOt4];
MASpramoeRE = new double [KolOt4];
MASpramoeIM = new double [KolOt4];
for (j=0; j< KolOt4; j++)
{
MASpramoeRE [j] = 0;
MASpramoeIM [j] = 0;
for (i=0; i< KolOt4; i++)
{
MASpramoeRE [j] = MASpramoeRE [j] + MASdisc[i]*cos (2*M_PI*i*j/KolOt4);
MASpramoeIM [j] = MASpramoeIM [j] + MASdisc[i]*sin (2*M_PI*i*j/KolOt4);
}
MASpramoeRE [j] /= KolOt4;
MASpramoeIM [j] /= KolOt4;
}
for (j=0; j< KolOt4; j++)
MASpramoe [j] = MASpramoeRE [j] + MASpramoeIM [j];
koef = Grphcs.GetXKoificient();
Ox = Grphcs.GetOSx();
Oy = Grphcs.GetOSy();
FPram = true;
ShowWindow(hPopup,SW_SHOWMAXIMIZED);
if (MASfiltr)
delete [] MASfiltr;
MASfiltr = new double [KolOt4];
int KolOt4Filtr = (int)(Filtr4ast*KolOt4 / (1200/T));
int i;
for (i=0;i<KolOt4;i++)
MASfiltr[i] = MASpramoe[i];
}
SetMenuItem(GetMenu(hWnd),ID_PRAMOE,MFS_DISABLED);
SetMenuItem(GetMenu(hWnd),ID_OBRATNOE,MFS_ENABLED);
InvalidateRect(NULL,NULL,TRUE);
}
break;
case ID_OBRATNOE:
{
if (FPram)
{
if (MASobrat)
delete [] MASobrat;
if (MASobratRE)
delete [] MASobratRE;
if (MASobratIM)
delete [] MASobratIM;
MASobratRE = new double [KolOt4];
MASobratIM = new double [KolOt4];
MASobrat = new double [KolOt4];
for (j=0; j< KolOt4; j++)
{
MASobratRE [j] = 0;
MASobratIM [j] = 0;
for (i=0; i< KolOt4; i++)
{ MASobratRE [j] = MASobratRE [j] + MASpramoe[i]*cos (2*M_PI*i*j/KolOt4);
MASobratIM [j] = MASobratIM [j] + MASpramoe[i]*sin (2*M_PI*i*j/KolOt4);
}
}
for (j=0; j< KolOt4; j++)
MASobrat [j] = MASobratRE [j]+MASobratIM [j];
Grphcs.SetCvet (RGB(0,0,0),RGB(0,0,0),RGB(206,206,206),RGB(101,111,125),RGB(0,0,0));
Grphcs.RazmerLinii (6);
Grphcs.SetXYs (MASobrat,KolOt4,fs,false);
Grphcs.Setka (hWnd, fa*KolPeriod*3,0);
Grphcs.OSI (hWnd);
Grphcs.Grafik (hWnd,0,0);
Grphcs.Text (hWnd,0.01,-0.06,"--- Восстановленый сигнал без фильтрации",RGB(101,111,125));
FRevers = true;
}
InvalidateRect(NULL,NULL,TRUE);
SetMenuItem(GetMenu(hWnd),ID_OBRATNOE,MFS_DISABLED);
SetMenuItem(GetMenu(hWnd),ID_FILTR,MFS_ENABLED);
}
break;
case ID_FILTR:
{ if (FPram)
{ FiltrOw=0;
if (MASfiltrRE)
delete [] MASfiltrRE;
if (MASfiltrIM)
delete [] MASfiltrIM;
MASfiltrRE = new double [KolOt4];
MASfiltrIM = new double [KolOt4];
for (j=0; j< KolOt4; j++)
{ MASfiltrRE [j] = 0;
MASfiltrIM [j] = 0;
for (i=0; i< KolOt4; i++)
{ MASfiltrRE [j] = MASfiltrRE [j] + MASfiltr[i]*cos (2*M_PI*i*j/KolOt4);
MASfiltrIM [j] = MASfiltrIM [j] + MASfiltr[i]*sin (2*M_PI*i*j/KolOt4);
}
}
for (j=0; j< KolOt4; j++)
MASfiltr [j] = MASfiltrRE [j]+MASfiltrIM [j];
for (i=0;i<KolOt4;i++)
FiltrOw += pow (MASdisc[i] - MASfiltr[i],2);
Grphcs.SetCvet (RGB(0,0,0),RGB(0,0,0),RGB(206,206,206),RGB(0,0,255),RGB(0,0,0));
Grphcs.RazmerLinii (4);
Grphcs.SetXYs (MASfiltr,KolOt4,fs,false);
Grphcs.OSI (hWnd);
Grphcs.Grafik (hWnd,0,0);
Grphcs.Text (hWnd,0.01,-0.09,"--- Восстановленый сигнал",RGB(0,0,255));
sprintf (StrokaOwibki,"Ошибка = %.4f",FiltrOw);
Grphcs.Text (hWnd,0.7,-0.09,StrokaOwibki,RGB(163,0,0));
FFiltr = true;
}
SetMenuItem(GetMenu(hWnd),ID_FILTR,MFS_DISABLED);
}
break;
}
break;
}
case WM_DESTROY:
{PostQuitMessage(0);}
return 0;
break;
}
return DefWindowProc(hWnd,msg,wParam,lParam);
}
BOOL CALLBACK DlgProc(HWND hDlg,UINT message, WPARAM wParam,LPARAM lParam)
{
UINT idCtrl,code;
switch(message)
{ case WM_INITDIALOG:
{ char stroka[20];
HWND hEdit = GetDlgItem(hDlg,IDC_PERIOD);
sprintf (stroka,"%.0f",T);
SetWindowText(hEdit,stroka);
SetWindowText(hEdit,stroka);
hEdit = GetDlgItem(hDlg,IDC_4ASTOTA);
sprintf (stroka,"%.0f",Filtr4ast);
SetWindowText(hEdit,stroka);
hEdit = GetDlgItem(hDlg,IDC_AMPLITYDA);
sprintf (stroka,"%.0f",A);
SetWindowText(hEdit,stroka);
hEdit = GetDlgItem(hDlg,IDC_KVANT);
sprintf (stroka,"%d",Kvantov);
SetWindowText(hEdit,stroka);
hEdit = GetDlgItem(hDlg,IDC_SKVAZN);
sprintf (stroka,"%.0f",Skvaz);
SetWindowText(hEdit,stroka);
}
break;
case WM_COMMAND:
idCtrl = LOWORD(wParam);
code = HIWORD(wParam);
switch(idCtrl)
{
case IDC_SAVE:
{ char stroka[30],er[5];
double Temp = 0;
int error=0;
GetDlgItemText(hDialog, IDC_PERIOD, stroka, 20);
Temp = atof (stroka);
if (Temp >= 1 && Temp < 200) T = Temp; else error++;
GetDlgItemText(hDialog, IDC_AMPLITYDA, stroka, 20);
Temp = atof (stroka);
if (Temp >= -100 && Temp <= 200 && Temp!=0) A = Temp;else error++;
GetDlgItemText(hDialog, IDC_SKVAZN, stroka, 20);
Temp = atof (stroka);
if (Temp >= -100 && Temp <= 100) Skvaz = Temp;else error++;
GetDlgItemText(hDialog, IDC_KVANT, stroka, 20);
Temp = atof (stroka);
if (Temp >= 1 && Temp <= 100 && (Temp-(int)Temp)==0)
Kvantov =(int) Temp;
else error++;
GetDlgItemText(hDialog, IDC_4ASTOTA, stroka, 20);
Temp = atof (stroka);
if (Temp >= 0 && Temp <= 1200/T)Filtr4ast = Temp;else error++;
if (!error)
{SetMenuItem(GetMenu(hMain),ID_ISHOD,MFS_ENABLED);
SetMenuItem(GetMenu(hMain),ID_RESET,MFS_ENABLED);
SendMessage(hDialog, WM_DESTROY,NULL,NULL);
reset=0;
}else
{strcpy(stroka,"Введено ");
sprintf(er,"%d",error);
strcat(stroka,er);
strcat (stroka," неверных значений.");
MessageBox(hDlg,stroka,"Ошибка",MB_OK);
}
}
break;
case WM_KEYDOWN:
switch ((int)wParam)
{
case VK_RETURN:
SendMessage(hDialog, IDC_SAVE,NULL,NULL);
break;
}
break;
}
break;
case WM_DESTROY:
EndDialog(hDialog, IDOK);
return TRUE;
break;
}
return FALSE;
}
LRESULT CALLBACK WndProcPopup(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam)
{
switch (msg)
{
case WM_DESTROY:
DestroyWindow(hwnd);
GetClientRect(hMain,&rect);
InvalidateRect(hMain,&rect,TRUE);
break;
case WM_PAINT:
if (FPram)
{
double k = Grphcs.GetXKoificient ()*2.2;
int OSx = Grphcs.GetOSx(), OSy = Grphcs.GetOSy(),ofset=200;
Grphcs.Zoom(0,-ofset,1, 1);
Grphcs.SetCvet (RGB(0,0,0),RGB(0,0,0),RGB(206,206,206),RGB(173,44,44),RGB(0,0,0));
Grphcs.RazmerLinii (8);//Установка толщины линии функции
Grphcs.SetXYs (MASpramoe,KolOt4,fs,false);//Запись массива значений для построения графика
Grphcs.Setka (hwnd,dx,KolOt4);//Прорисовка сетки графика
Grphcs.OSI (hwnd);///Прорисовка осей графика
Grphcs.Zoom(0,ofset,1, 1);
Grphcs.Spektr (hwnd,ofset);
Grphcs.RazmerLinii (4);//Установка толщины линии функции
Grphcs.Text (hwnd,0.01,-0.1,"--- Исходный спектр",RGB(173,44,44));
Grphcs.SetCvet (RGB(0,0,0),RGB(0,0,0),RGB(206,206,206),RGB(0,0,0),RGB(0,0,0));
Grphcs.SetXYs (MASfiltr,KolOt4,fs,false);//Запись массива значений для построения графика
Grphcs.Spektr (hwnd,ofset);
Grphcs.Text (hwnd,0.01,-0.12,"--- Отфильтрованый спектр",RGB(0,0,0));
Grphcs.SetXKoificient(koef,OSx,OSy);
}
break;
case WM_KEYDOWN:
{
RECT client_rect;
GetClientRect (hwnd,&client_rect);
switch ((int)wParam)
{
case 65://A
Grphcs.Zoom(-100,0,1,1);
break;
case 68://D
Grphcs.Zoom(100,0,1,1);
break;
case VK_RIGHT:
Grphcs.Zoom(0,0,1.25,1);
dx*=1.25;
break;
case VK_LEFT:
Grphcs.Zoom(0,0,-1.25,1);
dx/=1.25;
break;
case VK_UP:
Grphcs.Zoom(0,0,1,1.25);
break;
case VK_DOWN:
Grphcs.Zoom(0,0,1,-1.25);
break;
case VK_RETURN:
Grphcs.Zoom(0,0,0,0);
Grphcs.SetOSI (hwnd);
dx=fs;
break;
}
InvalidateRect(NULL,NULL,1);
}
break;
}
return DefWindowProc(hwnd,msg,wParam,lParam);
}
Дата добавления: 2015-08-29; просмотров: 39 | Нарушение авторских прав
<== предыдущая лекция | | | следующая лекция ==> |
Жизнь Ваше вечное открытие Мы благодарим Вас за участие в тестировании ароматической коллекции Компании «Мэри Кэй»! | | | 4. 895 |