Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

#include stdafx.h



ПРИЛОЖЕНИЕ Б

#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

mybiblioteka.su - 2015-2024 год. (0.069 сек.)