//Plik funkcje.h //--------define style przycisków #define DEFINE_CHECK WS_CHILD|WS_VISIBLE|BS_AUTOCHECKBOX #define DEFINE_EDIT WS_CHILD|WS_VISIBLE|WS_BORDER //--------define menu #define WM_EDIT_ENTER 5000 #define ID_MENU_KONIEC 1120 #define ID_MENU_H_AUTOR 1200 //--------define przyciski #define ID_BUTTON1 2101 #define ID_BUTTON2 2102 #define ID_BUTTON3 2103 #define ID_BUTTON4 2104 #define ID_BUTTON5 2105 #define ID_BUTTON6 2106 #define ID_UP11 3011 #define ID_UP12 3012 #define ID_UP2 3020 #define ID_UP3 3030 #define ID_UP41 3041 #define ID_UP42 3042 #define ID_UP51 3051 #define ID_UP52 3052 #define ID_UP61 3061 #define ID_UP62 3062 #define ID_DOWN11 3111 #define ID_DOWN12 3112 #define ID_DOWN2 3120 #define ID_DOWN3 3130 #define ID_DOWN41 3141 #define ID_DOWN42 3142 #define ID_DOWN51 3151 #define ID_DOWN52 3152 #define ID_DOWN61 3161 #define ID_DOWN62 3162 static LPCSTR lpszAppName = "praca_l"; RECT WindowRect, checkRect, gestoscRect, dystrybuantaRect; int i; //zmienna do pętli int double j; //zmienna do pętli double char buf[4]; //bufor do zapisu w oknach edit char *buf1=" "; //j.w. //tablica z nazwami rozkładów char *rozklad[]={"normalny","t-Studenta","chi-kwadrat", "F Snedecora","beta","Cauchy'ego"}; //który aktywny rysunek rozkładu BOOL checked[6]={0,0,0,0,0,0}; //tablice przechowujące obliczenia float G_Normalny[800], D_Normalny[800]; double a_norm=0,b_norm=1; float G_Studenta[800], D_Studenta[800]; double n_stud=1; float G_Chi[800], D_Chi[800]; double n_chi=5; float G_Snedecora[800], D_Snedecora[800]; double m_sned=5,n_sned=5; float G_Beta[800], D_Beta[1000]; double a_beta=2,b_beta=2; float G_Cauchy[800], D_Cauchy[800]; double a_cau=0,l_cau=2; //funkcja odswieżająca obliczenia danego rozkładu void ObliczRozkLad(int nrRozkladu); //wskaznik na główne okno HDC hDC; //wskazniki na okna pomocnicze HDC gestoscDC,dystrybuantaDC,checkDC; //bitmapa pomocnicza HBITMAP theBitmap1,theBitmap2,theBitmap3; //bitmapy z wzorami HBITMAP bitmapNorm,bitmapStudent,bitmapChi,bitmapSnedecor,bitmapBeta,bitmapCauchy; HWND button0,button1,button2,button3,button4,button5,button6; HWND b_up11,b_up12,b_up2,b_up3,b_up41,b_up42,b_up51,b_up52,b_up61,b_up62; HWND b_down11,b_down12,b_down2,b_down3,b_down41,b_down42,b_down51,b_down52,b_down61,b_down62; HWND edit11,edit12,edit2,edit3,edit41,edit42,edit51,edit52,edit61,edit62; HWND Sgroup,S_e1,S_canel,S_ok, gest; HPEN pen,hpen,hpenBack; HPEN hpen0,hpen1,hpen2,hpen3,hpen4,hpen5,hpen6; HBRUSH hbr; HBRUSH hbr0,hbr11,hbr1,hbr2,hbr3,hbr4,hbr5,hbr6; MSG msg; // Struktura komunikatu WNDCLASS wc; // Struktura klasy okna HWND hWnd; // Uchwyt głównego okna DLGPROC dlgProcAutor; // dialog "autor" HANDLE hInst; // // Deklarcja procedury okna BOOL CALLBACK AutorProc( HWND hDlg, UINT message,WPARAM wParam, LPARAM lParam ); LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); //============================================================ //funkcja pomocnicza do ustawiania struktury prostokątów RECT Rect(int l,int t,int r,int b) { RECT R; R.left=l; R.top=t; R.right=r; R.bottom=b; return R; } //------------------------------------------------------ //funkcja wyswietlająca błędy void Error(char *napis,char *rodzaj) { MessageBox(hWnd,napis,rodzaj,MB_OK); } //------------------------------------------------------- //funkcja rysująca ramkę 3d wokół zadanego prostokąta void Ramka3d(HDC hdc,RECT *R,int wypukle=1) { MoveToEx(hdc,R->right-1,R->top,NULL); if(wypukle==1) { hpen = CreatePen(PS_SOLID, 1, RGB(250,250, 250)); hpenBack=SelectObject(hdc, hpen); } else { hpen = CreatePen(PS_SOLID, 1, RGB(0,0,0)); hpenBack=SelectObject(hdc, hpen); } LineTo(hdc,R->left,R->top); LineTo(hdc,R->left,R->bottom-1); if(wypukle==0) { hpen = CreatePen(PS_SOLID, 1, RGB(250,250, 250)); SelectObject(hdc, hpen); } else { hpen = CreatePen(PS_SOLID, 1, RGB(0,0,0)); SelectObject(hdc, hpen); } LineTo(hdc,R->right-1,R->bottom-1); LineTo(hdc,R->right-1,R->top); SelectObject(hdc, hpenBack); DeleteObject(hpen); DeleteObject(hpenBack); } //------------------------------------------------------------------------------ //funkcja kopiójąca bitmapę do struktury DC void DrawBMP( HDC DC, int X, int Y, HBITMAP BitMap ) { HDC buforDC; BITMAP bm; buforDC = CreateCompatibleDC( DC ); SelectObject( buforDC, BitMap ); GetObject( BitMap, sizeof( bm ), ( LPSTR ) &bm ); BitBlt( DC, X, Y, bm.bmWidth, bm.bmHeight, buforDC, 0, 0, SRCCOPY ); DeleteDC( buforDC ); } //------------------------------------------------------------------------------ // przedziały liczbowe zastrzeżone dla funkcji: // FunkcjaUpDown(...); oraz FunkcjaEdit(...); // noZero=-1 (-oo,+oo) // noZero= 0 < 0,+oo) // noZero= 1 ( 0,+oo) //funkcja obsługująca przyciski up/down BOOL FunkcjaUpDown(HWND hw,int rozklad,double *param,char UpDown,int noZero); //funkcja obsługująca okienka edit //dla ułamków IntDouble= 'd' //liczby całkowite IntDouble= 'i' VOID FunkcjaEdit(HWND hw,int rozklad,double *param,int noZero,char IntDouble);