Turbos utworzono 23 maja 2009 utworzono 23 maja 2009 (edytowane) Wyjdę na idiotę. Ale kto pyta nie błądzi. Umiem programować pod konsole chciałbym ruszyć z WinAPI (Qt4 jeszcze zbyt pokręcone jak dla mnie). Znalazłem fajny kod WinAPI czystego okna w internecie o taki #include <windows.h>#include <iostream> #include <conio.h> #include <windows.h>#include <dos.h>#include <string.h>// Tutaj umieszczamy nazwę klasy, wg której powstanie nasze okno// Jest to zmienna globalna.//--------------------------------------------------------------char ClassName[ ] = "Baza danych";// Procedura obsługująca wiadomości dla okna, wywoływana przez// MS-Windows przy okazji różnych zdarzeń, które należy obsłużyć//--------------------------------------------------------------LRESULT CALLBACK WndProc(HWND h, UINT uMsg , WPARAM wP, LPARAM lP){ if(uMsg == WM_DESTROY) { PostQuitMessage(0); return 0; } else return DefWindowProc(h,uMsg,wP,lP);}// W Windows główna funkcja, od której uruchamiany jest program,// nazywa się WinMain zamiast main.//--------------------------------------------------------------int WINAPI WinMain (HINSTANCE hinst, HINSTANCE hprevinst, LPSTR cmdLine, int cmdShow){ WNDCLASSEX wc; // struktura klasy okna MSG ms; // przechowuje wiadomości aplikacji HWND h; // Uchwyt naszego okna// Ustawiamy kolejne pola struktury klasy okna wc.cbSize = sizeof(WNDCLASSEX); wc.style = CS_HREDRAW | CS_VREDRAW; wc.lpfnWndProc = WndProc; wc.cbClsExtra = wc.cbWndExtra = 0; wc.hInstance = hinst; wc.hbrBackground = (HBRUSH) COLOR_WINDOW; wc.lpszMenuName = NULL; wc.lpszClassName = ClassName; wc.hIcon = wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION); wc.hCursor = LoadCursor(NULL, IDC_ARROW);// Rejestrujemy klasę okna w Windows. Jeśli się to nie uda, kończymy program if(!RegisterClassEx(&wc)) return 0;// Gdy klasa jest zarejestrowana, tworzymy na jej podstawie okno h = CreateWindowEx(0, // dodatkowe style okna, 0 oznacza ich brak ClassName, // adres tablicy char z nazwą klasy "Baza danych", // adres łańcucha z napisem tytułowym okna WS_OVERLAPPEDWINDOW, // styl okna CW_USEDEFAULT, // współrzędna X lewego górnego narożnika okna CW_USEDEFAULT, // współrzędna Y lewego górnego narożnika okna 732, // szerokość okna w pikselach, również może być CW_USEDEFAULT 491, // wysokość okna w pikselach, również może być CW_USEDEFAULT 0, // uchwyt nadrzędnego okna, jeśli istnieje 0, // uchwyt menu, jeśli istnieje hinst, // uchwyt programu, który korzysta z okna 0 // adres dodatkowych danych );// Utworzone okno wyświetlamy na ekranie ShowWindow(h, cmdShow);{ int GetWindowText ( HWND hWnd, LPTSTR lpString, int nMaxCount );} UpdateWindow(h);// Rozpoczynamy pętlę obsługi wiadomości napływających do naszego okna. while(GetMessage(&ms, NULL, 0, 0)) { TranslateMessage(&ms); DispatchMessage(&ms); }// zwracamy wartość umieszczoną w polu wParam ostatniej wiadomości return ms.wParam;} W którym miejscu wstawić np. kontrolkę EDIT ? Nigdy tego nie umiałem zrozumieć gdzie się te kontrolki wstawia.
tom300 komentarz 24 maja 2009 komentarz 24 maja 2009 Kontrolki można wstawiać zaraz po stworzeniu okna a najlepiej kiedy przychodzi komunikat WM_CREATE do procedury obsługi komunikatów (czyli WndProc w Twoim przypadku). Oczywiście możesz je dawać w osobnych funkcjach itp. jedynym warunkiem jest to żeby okno było już stworzone, czyli po funkcji UpdateWindow Btw. jeżeli chcesz się pozbyć kontrolki z okna to do tego służy funckja DestroyWindow(uchwyt kontrolki).
Turbos komentarz 24 maja 2009 Autor komentarz 24 maja 2009 Dzięki za informację no to teraz zacznę tworzyć coś porządnego bo wiem gdzie co wsadzać.
Wciąż szukasz rozwiązania problemu? Napisz teraz na forum!
Możesz zadać pytanie bez konieczności rejestracji - wystarczy, że wypełnisz formularz.