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 →