Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <windows.h>
- #include <cstdio>
- #include <iostream>
- #include <cstdlib>
- #include <ctime>
- #include <string>
- #include "rpacr.hpp"
- #include "fo.hpp"
- #include "cesr.hpp"
- #define losuj 501
- #define start 502
- #define pole 503
- LPSTR NazwaKlasy = "Klasa Okienka";
- MSG Komunikat;
- LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
- //deklaracje
- HWND hwnd;
- HWND przycisk;
- HWND start_p;
- HWND TextBox;
- HWND Static_text;
- HWND ramka;
- city *headUnSor = NULL;
- city *headSor = NULL;
- city *tailSor = NULL;
- float **TRoad;
- int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){
- // WYPELNIANIE STRUKTURY
- WNDCLASSEX wc;
- wc.cbSize = sizeof( WNDCLASSEX );
- wc.style = 0;
- wc.lpfnWndProc = WndProc;
- wc.cbClsExtra = 0;
- wc.cbWndExtra = 0;
- wc.hInstance = hInstance;
- wc.hIcon = LoadIcon(NULL,IDI_APPLICATION);
- wc.hCursor = LoadCursor(NULL,IDC_ARROW);
- //wc.hbrBackground =(HBRUSH)(COLOR_WINDOW+1);
- wc.hbrBackground =(HBRUSH)GetStockObject(BLACK_BRUSH);
- wc.lpszMenuName = NULL;
- wc.lpszClassName = NazwaKlasy;
- wc.hIconSm = LoadIcon(NULL,IDI_APPLICATION);
- // REJESTROWANIE KLASY OKNA
- if(!RegisterClassEx(&wc)){
- MessageBox(NULL,"B³¹d", "Podczas rejestracji okna wyst¹pi³ b³¹d!",MB_ICONEXCLAMATION | MB_OK);
- return 1;
- }
- // TWORZENIE OKNA
- hwnd = CreateWindowEx( WS_EX_CLIENTEDGE, NazwaKlasy, "Komiwoja¿er", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 800, 600, NULL, NULL, hInstance, NULL);
- // kontrolki
- przycisk = CreateWindowEx(WS_EX_CLIENTEDGE,"button","Losuj punkty",WS_CHILD | WS_VISIBLE | WS_BORDER,600,80,150,30,hwnd,(HMENU) losuj,hInstance,NULL);
- start_p = CreateWindowEx(WS_EX_CLIENTEDGE,"button","Start",WS_CHILD | WS_VISIBLE|WS_BORDER,600,120,150,30,hwnd,(HMENU) start,hInstance,NULL);
- Static_text= CreateWindowEx(0, "STATIC", NULL, WS_CHILD | WS_VISIBLE |SS_LEFT, 600, 15, 150, 30, hwnd, NULL, hInstance, NULL);
- ramka = CreateWindowEx(WS_EX_CLIENTEDGE,"STATIC","",WS_CHILD | WS_VISIBLE | WS_BORDER | BS_GROUPBOX,10,10,550,550,hwnd,(HMENU) pole,hInstance,NULL);
- TextBox = CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", NULL, WS_CHILD | WS_VISIBLE | WS_BORDER,600, 40, 150, 30, hwnd, NULL, hInstance, NULL);
- SetWindowText(Static_text, "Podaj iloœæ punktów");
- if(hwnd == NULL){
- MessageBox( NULL, "B³¹d w podczas uruchamiania programu ", "Error!!!", MB_ICONEXCLAMATION);
- return 1;
- }
- ShowWindow(hwnd, nCmdShow); // Pokaz okienko
- UpdateWindow(hwnd);
- // Petla komunikatow
- while(GetMessage(&Komunikat,NULL,0,0)){
- TranslateMessage(&Komunikat);
- DispatchMessage(&Komunikat);
- }
- return Komunikat.wParam;
- }
- int Rys_punkty(city **h){
- HDC hdc = GetDC(hwnd);
- city *p = (*h);
- POINT oldPt;
- HBRUSH GrBr = CreateSolidBrush(0x00FF00);
- SelectObject(hdc,GrBr);
- while(p!=NULL){
- MoveToEx(hdc,p->x,p->y,&oldPt);
- Ellipse(hdc,p->y-7,p->x-7,p->y+7,p->x+7);
- p=p->next;
- }
- ReleaseDC(hwnd,hdc);
- return 0;
- }
- int drawRoutes(city **h){
- HDC hdc = GetDC(hwnd);
- city *p = (*h);
- POINT oldPt;
- HPEN pen = CreatePen(PS_SOLID,1,0x0000FF);
- SelectObject(hdc,pen);
- MoveToEx(hdc,p->y+1,p->x,&oldPt);
- while(p != NULL){
- Sleep(20);
- LineTo(hdc,p->y,p->x);
- p = p->next;
- }
- return 0;
- }
- // OBSLUGA ZDARZEN
- LRESULT CALLBACK WndProc(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam){
- switch(msg){
- case WM_CLOSE:
- DestroyWindow( hwnd );
- break;
- case WM_DESTROY:
- PostQuitMessage(0);
- break;
- case WM_COMMAND:
- switch(wParam){
- case losuj:{
- srand (time(NULL));
- char *Bufor;
- Bufor = (char*)malloc(sizeof(char)*7);
- GetWindowText(TextBox,Bufor,7);
- unsigned int qu = atoi(Bufor);
- randomizePointCoord(qu,&headUnSor);
- save(headUnSor);
- TRoad = new float*[qu];
- for(int i=0;i<qu;i++)
- TRoad[i] = new float[qu];
- calcRoadTable(&headUnSor,TRoad);
- Rys_punkty(&headUnSor);
- DestroyWindow(przycisk);
- break;
- }
- case start:
- noAhead(&headUnSor,&headSor,&tailSor,TRoad);
- DestroyWindow(start_p);
- MessageBox(hwnd,"Wyliczono droge","Informacja",MB_OK | MB_ICONASTERISK);
- drawRoutes(&headSor);
- MessageBox(hwnd,"Droga zostala narysowana","Informacja",MB_OK | MB_ICONASTERISK);
- break;
- }
- default:
- return DefWindowProc(hwnd, msg, wParam, lParam);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement