Jak zainicjować tryb OpenGL na staticu (coś w stylu komponentu Panel z VCL – Delphi, BCB)?

Na początku zadeklarujmy zmienne których użyjemy:

W kodzie dla zdarzenia WM_CREATE należy wpisać:

by stworzyć obiekt. Potem normalnie inicjujemy OpenGL’a, tyle, że kontekst graficzny przypisujemy dla hstat, o taki kod był w szablonie, tylko dół dodałem:

Użyjemy tej funkcji z procedurze okienkowej po pokazaniu się okna, czyli po funkcji ShowWindow w taki […]

Czytaj więcej

Jak wyświetlić w konsoli polskie znaki?

Trzeba je ręcznie wpisywać za pomocą odpowiednich kodów (muszą być poprzedzone backslashem ”): 206 – ć 210 – ł 230 – ś 242 – ó 245 – ą 251 – ę 253 – ź 276 – ż 344 – ń Przykład:

Autor: Iskar

Czytaj więcej

Jak sprawdzić rozmiar pliku otworzonego strumieniem?

Sprawa jest prosta – wystarczy po otworzeniu pliku przesunąć się (seekg) na jego koniec (drugim parametrem będzie flaga end) a potem odczytać aktualną pozycję w pliku (tellg), która zwróci nam pozycję w bajtach. Potem z powrotem przesuwamy się na początek pliku (seekg z drugim parametrem beg). Przykład:

U mnie pojawił się tekst: Rozmiar pliku (w bajtach): 1440054, […]

Czytaj więcej

Jak przesunąć programowo scroll?

Jak przesunąć programowo scroll? Należy wysłać do okna odpowiedni komunikat: – WM_VSCROLL – aby przesunąć pionowy scroll, – WM_HSCROLL – aby przesunąć poziomy scroll, za pomocą funkcji SendMessage:

Pierwszy parametr to uchwyt okna, do którego ma zostać wysłany komunikat, następny – identyfikator komunikatu, kolejne dwa parametry to wartości, jakie będą wraz z komunikatem przesłane. W wParam prześlemy informację o tym, o […]

Czytaj więcej

Jak przesłać obiekt typu string do funkcji przyjmującej jako argument const char*?

Jeżeli probowałeś przesłać do jakieś funkcji, która wymagała jako argumentu char* obiekt typu string, to zapewne spotkałeś się z błędem typów:

W takim wypadku musisz się posłużyć specjalną funkcją składową klasy string c_str(), która zwraca wskaźnik do stałego łańcucha tekstowego umieszczonego w obiekcie typu string:

Autor: Iskar

Czytaj więcej

Jak pobrać uchwyt do przycisku Start?

Na początku musimy otrzymać uchwyt do paska zadań, na którym znajduje się przycisk Start. Jego klasa to Shell_TrayWnd. Do uzyskania jego uchwytu posługużymy się funkcją FindWindow, który jako pierwszy argument przyjmuje nazwę klasy okna, a jako drugi – jego tytuł:

Następnie musimy otrzymać uchwyt do przycisku Start. Używamy w tym celu funkcji GetWindow, której […]

Czytaj więcej

Jak pobrać parametry z linii komend?

Jak pobrać parametry z linii komend? Najpierw należy dodać do funkcji main() dwa argumenty:

nazwy zmiennych są dowolne: argc – określa ile parametrów zostało przekazanych do programu z linii komend. argv – jest tablicą stringów przechowujących parametry. Na przyklad wywolanie programu: > my_prog -arg1 -arg2 arg3 spowoduje, że zmienna argc przyjmie wartość 4, a potem kolejno: […]

Czytaj więcej

Jak dostać ścieżkę do folderu, w który znajduje się plik exe aplikacji?

Sprawa prosta i łatwa, wystarczy wiedzieć, że zawsze pierwszy parametr programu to ścieżka do pliku exe, wystarczy więc wyciąć nazwe pliku i rozszerzenie:

Jeżeli nasza aplikacja nie jest konsolowa tylko typu Win32, to jako pierwszy parametr nie dostaniemy ścieżki do exeka, musimy ją dostać w inny sposób, oto kod:

Jak widać, korzystamy z […]

Czytaj więcej

Co zrobić, aby za każdym uruchomieniem programu losowane liczby różniły się od siebie?

Aby losowane liczby nie powtarzały się, należy przed rozpoczęciem losowania wywołać funkcję srand, do której paremetr otrzymamy z funkcji time(NULL) – zwraca ona ilość sekund, jakie upłynęły od 1 stycznia 1970 roku:

Autor: Iskar

Czytaj więcej

Co zrobić, aby strumienie oraz funkcje z stdio współpracowały poprawnie?

Strumienie cin oraz cout są buforowane, co oznacza, że dane nie są wypisywane/wczytywane za każdym razem, gdy sobie tego zażyczymy, lecz hurtem – gdy danych się troche nazbiera. Powoduje to nieprawidłowe współdziałanie funkcji z stdio ze strumieniami, gdyż używając printf/scanf dane są wypisywane od razu. Może dojść do sytuacji, gdy np. przeplatasz wyświetlanie danych na […]

Czytaj więcej