Program zawiera przykładowy tryb graficzny oraz po kliknięciu przycisku start przepisuje tekst z ramki w odpowiednie pole
Docelowy program powinien wyglądać tak :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 | //by Cygan #include <windows.h> LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); HINSTANCE g_hinst; int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { MSG msg ; WNDCLASS wc = {0}; wc.lpszClassName = TEXT( "Nazwa" ); //Nazwa naszej aplikacji wc.hInstance = hInstance ; wc.hbrBackground = GetSysColorBrush(COLOR_3DFACE); //Kolor tła - standardowy win wc.lpfnWndProc = WndProc ; //Nazwa procedury obsługi zdarzeń wc.hCursor = LoadCursor(0, IDC_ARROW); //Wygląd kursora aplikacji g_hinst = hInstance; RegisterClass(&wc); CreateWindow( wc.lpszClassName, TEXT("przykład1"), //Tekst w nagłówku okna głównego WS_OVERLAPPEDWINDOW | WS_VISIBLE, //Flagi okna głównego 150, 150, 400, 280, 0, 0, hInstance, 0); //pozycja X, Y, szerokość i wysokość okna, a także wskaźnik na instancję aplikacji while( GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return (int) msg.wParam; } LRESULT CALLBACK WndProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam ) //Procedura obsługi zdarzeń - serce API { static HWND Opt[12]; //Tablica kontrolek - ile kontrolek tyle elementów tu 12 switch(msg) { case WM_CREATE: //tworzenie wszystkich kontrolek //Lista tworzonych kontrolek, np: Opt[0]=CreateWindow(TEXT("button"), TEXT("Start"), WS_VISIBLE | WS_CHILD , 15, 180, 80, 25, hwnd, (HMENU) 1, NULL, NULL); Opt[1]=CreateWindow(TEXT("button"), TEXT("Kolor"), WS_VISIBLE | WS_CHILD | BS_GROUPBOX, 15, 25, 120, 125, hwnd, (HMENU) 2, NULL, NULL); Opt[2]=CreateWindow(TEXT("button"), TEXT("Zielony"), WS_VISIBLE | WS_CHILD | BS_AUTORADIOBUTTON, 30, 50, 80, 25, hwnd, (HMENU) 3, NULL, NULL); Opt[3]=CreateWindow(TEXT("button"), TEXT("Niebieski"), WS_VISIBLE | WS_CHILD | BS_AUTORADIOBUTTON, 30, 80, 80, 25, hwnd, (HMENU) 4, NULL, NULL); Opt[4]=CreateWindow(TEXT("button"), TEXT("Styl"), WS_VISIBLE | WS_CHILD | BS_GROUPBOX, 150, 25, 175, 125, hwnd, (HMENU) 5, NULL, NULL); Opt[5]=CreateWindow(TEXT("button"), TEXT("Pogrubienie"), WS_VISIBLE | WS_CHILD | BS_AUTORADIOBUTTON, 160, 50, 120, 25, hwnd, (HMENU) 6, NULL, NULL); Opt[6]=CreateWindow(TEXT("button"), TEXT("Pochylenie"), WS_VISIBLE | WS_CHILD | BS_AUTORADIOBUTTON, 160, 80, 120, 25, hwnd, (HMENU) 7, NULL, NULL); Opt[7]=CreateWindow(TEXT("button"), TEXT("Normlalny"), WS_VISIBLE | WS_CHILD | BS_AUTORADIOBUTTON, 160, 110, 120, 25, hwnd, (HMENU) 8, NULL, NULL); Opt[8]=CreateWindow(TEXT("STATIC"), TEXT("Tekst"), WS_VISIBLE | WS_CHILD , 120, 180, 80, 25, hwnd, (HMENU) 9, NULL, NULL); Opt[9]=CreateWindow(TEXT("EDIT"), TEXT(" "), WS_VISIBLE | WS_CHILD | WS_BORDER, 160, 180, 80, 25, hwnd, (HMENU) 10, NULL, NULL); Opt[10]=CreateWindow(TEXT("STATIC"), TEXT("Start"), WS_VISIBLE | WS_CHILD , 160, 220, 80, 25, hwnd, (HMENU) 11, NULL, NULL); /* Opt[1] = CreateWindow(..... */ break; case WM_COMMAND: //obsluga kliknięcia w kontrolkę switch(LOWORD(wParam)) //numer kontrolki { case 1: //kontrolka nr 1 parametr (HMENU)1 w CreateWindow char napis[100]; GetWindowText(Opt[9],napis,100); SetWindowText(Opt[10],TEXT(napis)); break; case 2: //po kliknięciu na kontrolkę nr 2 - koniec programu PostQuitMessage(0); break; //case 3:........ obsługa wszystkich kontrolek } break; //koniec obsługi kliknięcia na kontrolkę case WM_DESTROY: //zdarzenie zamknięcia głównego okna PostQuitMessage(0); break; } return DefWindowProc(hwnd, msg, wParam, lParam); } |
Show Comments