Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- #include <string>
- #include <windows.h>
- #include <iostream>
- #include <cstdlib>
- #define ID_BUTTON 1
- LPCSTR NazwaKlasy = "Klasa Okienka";
- MSG Komunikat;
- HWND hPrzycisk, hEdit, hListBox;
- LRESULT CALLBACK WndProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam );
- void tworzenie_pliku(char nazwa_pliku, std::string kod){
- std::ofstream plik( nazwa_pliku+".txt" );
- plik << kod ;
- }
- int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
- {
- // WYPEŁNIANIE 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.lpszMenuName = NULL;
- wc.lpszClassName = NazwaKlasy;
- wc.hIconSm = LoadIcon( NULL, IDI_APPLICATION );
- // REJESTROWANIE KLASY OKNA
- if( !RegisterClassEx( & wc ) )
- {
- MessageBox( NULL, "Odmawia rejestracji tego okna!", "Niestety...",
- MB_ICONEXCLAMATION | MB_OK );
- return 1;
- }
- // TWORZENIE OKNA
- HWND hwnd;
- //okno
- hwnd = CreateWindowEx( WS_EX_CLIENTEDGE, NazwaKlasy, "Okno", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 200, 250, NULL, NULL, hInstance, NULL );
- hPrzycisk = CreateWindowEx( 0, "BUTTON", "Zapisz", WS_CHILD | WS_VISIBLE, 100, 150, 60, 30, hwnd, NULL, hInstance, NULL );
- hEdit = CreateWindowEx( 0, "EDIT", "wpisz", WS_CHILD | WS_VISIBLE | WS_BORDER, 15, 150, 60, 30, hwnd, NULL, hInstance, NULL );
- hListBox = CreateWindowEx( WS_EX_CLIENTEDGE, "LISTBOX", NULL, WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL | ES_MULTILINE | ES_AUTOVSCROLL, 15, 15, 150, 100, hwnd, NULL, hInstance, NULL );
- if( hwnd == NULL )
- {
- MessageBox( NULL, "Okno odmówiło!", "Ale kicha...", MB_ICONEXCLAMATION );
- return 1;
- }
- ShowWindow( hwnd, nCmdShow ); // Pokaż okienko...
- UpdateWindow( hwnd );
- // Pętla komunikatów
- while( GetMessage( & Komunikat, NULL, 0, 0 ) )
- {
- TranslateMessage( & Komunikat );
- DispatchMessage( & Komunikat );
- }
- return Komunikat.wParam;
- }
- // OBSŁUGA ZDARZEŃ
- LRESULT CALLBACK WndProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam )
- {
- switch( msg )
- {
- case WM_COMMAND:{
- switch(wParam)
- {
- case ID_BUTTON:{
- /// pobieramy tekst z kontrolki i zapisujemy w lancuchu cText
- unsigned int iSize = GetWindowTextLength(hEdit);
- char *cText = new char[iSize+1];
- GetWindowText(hEdit, cText, iSize+1); /// +1 dla znaku /0
- /// otwieramy plik
- // http://cpp0x.pl/kursy/Kurs-WinAPI-C++/Podstawy/Pliki/180
- delete cText;
- for(int it=0; it<SendMessage(hListBox, LB_GETCOUNT, 0, 0); ++it)
- {
- iSize = SendMessage(hListBox, LB_GETTEXTLEN, 0, 0);
- cText = new char[iSize+1];
- SendMessage(hListBox, LB_GETTEXT, it, (LPARAM)cText);
- /// zapisujemy wartosc cText (tekstu it - indexu listy) do pliku
- delete cText;
- }
- /// zamykamy plik tekstowy
- break;
- }
- }
- break;
- }
- case WM_CLOSE:
- DestroyWindow( hwnd );
- break;
- case WM_DESTROY:
- PostQuitMessage( 0 );
- break;
- default:
- return DefWindowProc( hwnd, msg, wParam, lParam );
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement