Advertisement
Guest User

Untitled

a guest
Jan 3rd, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <Windows.h> // Podstawa do WinAPI
  2. #include <time.h>
  3.  
  4. HBITMAP hbmObraz = (HBITMAP)LoadImage(NULL, "Pilka.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
  5.  
  6. HDC hdc, hdcNowy;
  7. PAINTSTRUCT ps;
  8. BITMAP bminfo;
  9. RECT rect;
  10.  
  11. //(HBITMAP)LoadImage(NULL, TEXT("C:\\Users\\zapo\\OneDrive\\Dokumenty\\Visual Studio 2015\\Projects\\[PIU] Statki\\[PIU] Statki\\background.bmp"), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
  12.  
  13. LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) {//Funkcja eventów
  14.    
  15.     switch (msg) {
  16.     case WM_PAINT:
  17.     {
  18.  
  19.         hdc = BeginPaint(hwnd, &ps);
  20.         hdcNowy = CreateCompatibleDC(hdc);
  21.  
  22.  
  23.         HBITMAP hbmOld = (HBITMAP)SelectObject(hdcNowy, hbmObraz);
  24.  
  25.         GetObject(hbmObraz, sizeof(bminfo), &bminfo);
  26.  
  27.         BitBlt(hdc, 50, 50, bminfo.bmWidth, bminfo.bmHeight, hdcNowy, 0, 0, SRCCOPY);
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.         SelectObject(hdcNowy, hbmOld);
  38.         DeleteDC(hdcNowy);
  39.         EndPaint(hwnd, &ps);
  40.  
  41.     }
  42.         break;
  43.     case WM_LBUTTONDOWN:
  44.        
  45.    
  46.  
  47.  
  48.  
  49.         break;
  50.     case WM_CREATE:     break;
  51.     case WM_COMMAND:    break;// Eventy uzytkownika
  52.     case WM_TIMER:      break;// Event czasowy
  53.     case WM_CLOSE:// Event zamkniecia
  54.         DestroyWindow(hwnd);
  55.         break;
  56.     case WM_DESTROY:// Event zamkniecia
  57.         PostQuitMessage(0);
  58.         break;
  59.     default:// Nieznany event
  60.         return DefWindowProc(hwnd, msg, wParam, lParam);
  61.     }
  62.     return 0;
  63. }
  64.  
  65. int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR ilCmdLine, int nCmdShow) { // main
  66.     WNDCLASSEX window; // Zmienna klasy
  67.     MSG msg; // Zmienna wydarzenia
  68.     TCHAR Class_Name[] = TEXT("OKNO_TEST"), Title[] = TEXT("Tytul"); // Tytuly TCHAR
  69.  
  70.     window.cbClsExtra = NULL;// Wypelnianie klasy okna //
  71.     window.cbSize = sizeof(WNDCLASSEX);
  72.     window.cbWndExtra = NULL;
  73.     window.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
  74.     window.hCursor = LoadCursor(NULL, IDC_ARROW);
  75.     window.hIcon = LoadIcon(NULL, IDI_APPLICATION);
  76.     window.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
  77.     window.hInstance = hInstance;
  78.     window.lpfnWndProc = WndProc;
  79.     window.lpszClassName = Class_Name;
  80.     window.lpszMenuName = 0;
  81.     window.style = CS_VREDRAW | CS_HREDRAW;
  82.  
  83.     if (!RegisterClassEx(&window)) { // Rejestracja klasy okna .... jesli blad STOP
  84.         MessageBox(NULL, TEXT("Błąd rejestracji okna"), TEXT("Błąd"), MB_ICONEXCLAMATION);
  85.         return 0;
  86.     }
  87.  
  88.     HWND hwnd = CreateWindowEx(WS_EX_WINDOWEDGE, Class_Name, Title, WS_OVERLAPPEDWINDOW | WS_VISIBLE, CW_USEDEFAULT, CW_USEDEFAULT, 800, 600, NULL, NULL, hInstance, NULL); //Tworzenie okna
  89.  
  90.     if (hwnd == NULL) {//Sprawdzanie czy okno zostalo stworzeona
  91.         MessageBox(NULL, TEXT("Błąd tworzenia okna"), TEXT("Błąd"), MB_ICONEXCLAMATION);
  92.         return 0;
  93.     }
  94.  
  95.  
  96.  
  97.  
  98.  
  99.     ShowWindow(hwnd, nCmdShow); // Wyswietlenie okna
  100.     UpdateWindow(hwnd); // Aktualizacja okna
  101. //  SetTimer(hwnd, NULL, 500, NULL); // Wywolanie eventy TIMER co '500' mlsc
  102.  
  103.     while (GetMessage(&msg, NULL, 0, 0)) { // Petla eventow
  104.         TranslateMessage(&msg); // tlumacznie eventu
  105.         DispatchMessage(&msg); // Wykonywanie eventu
  106.     }
  107.  
  108.     if (!UnregisterClass(Class_Name, hInstance)) { // Niszczenie okna ....
  109.         MessageBox(NULL, TEXT("Błąd niszczenia okna"), TEXT("Błąd"), MB_ICONEXCLAMATION);
  110.         return 0;
  111.     }
  112.     return msg.wParam;
  113. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement