Witam, chciałbym sięz Wami podzielić moim problemem, który spędza mi sen z powiek, i naprawdę nie wiem, o co tu chodzi. Z góry dziękuję za użyczoną mi pomoc i chętnie postawię browara temu, który pomoże mi pomóc w rozwiązaniu problemu [browar]

Mam problem z moim oknem tworzonym w WinAPI i naprawdę już nie wiem, o co jemu chodzi. Mój program w bardzo dużej części jest napisany w SDLu i potrzebowałem okienka "Otworz jako" i "Zapisz jako". Stworzyłem sobie takie okienka według poradnika Dark Cult:

int window_open_txt(HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nFunsterStil)

{    
     SDL_Surface *tytul, *tekst;
     bool already = false;
     OPENFILENAME ofn;
     ZeroMemory(&ofn,sizeof(ofn));
     ofn.lStructSize = sizeof(OPENFILENAME);
     ofn.hwndOwner = NULL;
     ofn.lpstrFilter = "Pliki tekstowe (*.txt)\0*.txt\0Niesformatowane pliki tekstowe (*.rtf)\0*.rft\0Pliki programu OpenOffice Write (*.dot)\0*.dot\0Pliki programu Word <= 2003 (*.doc)\0*.doc\0Wszystkie pliki\0*.*\0";
     char sNazwaPliku[MAX_PATH] = ""; 
     ofn.nMaxFile = MAX_PATH;
     ofn.lpstrFile = sNazwaPliku;
     ofn.lpstrDefExt = "txt";
     ofn.Flags = OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
     if(GetOpenFileName(&ofn))
     {
      return 1;
     }
     else return 0;
}

Kiedy funkcja się wykona i powraca do głównego ekranu (napisanego w SDLu), to wszystkie grafiki jakby poznikały (czyli znaczy się, że graficzki które były wczytane na powierzchnię "ekran", przed wykonaniem funkcji, one tam pozostawały.) Program potem normalnie mi działa, ale właśnie zachowuje się tak jakby nie wczytywał obrazków z plików, czyli tylko wczytuje tekst i potem go nawet nie czyści (bo czyszczenie tego też pozostawiłem kawałkowi obrazka, notabene). Po prostu wyświetla się się sam tekst. Można to jakoś wytłumaczyć?? Ja już naprawdę nie wiem o co tu biega. Przecież ten program nic nie powinien robić poza załadowaniem ścieżki do stringa sNazwaPliku, a on mąci mi w programie...

Chciałem też napisać też inne ciekawe rzeczy, jaką zauważyłem podczas pisania programu:

  1. Obrazek, który wczytuję tą funkcją, załaduje się na ekran, ale właśnie od tego momentu wszystko przestaje działać normalnie. Surface'y zachowują się jakby były puste [???]

  2. sNazwaPliku kiedy zapisuję w nowym pliku tekstowym, działa normalnie. Kiedy natomiast kopiuję ją do stringa np. "alojz", który służy do przechowywania właśnie ścieżki tapety, i w innej funkcji zapisuję go z resztą ustawień, wtedy nie chce się zapisać w tym pliku (ale inne zmienne dotyczących ustawień się zapisują) i efekt wygląda tak:

800 600 1
1
1
1
1
0
0
./images/styles/chidori.png
<- tu właśnie powinien znajdować się łańcuch z scieżką
... <- tu jest reszta ustawień
[???]

  1. Kiedy właśnie w tym nowym pliku zapisałem sNazwaPliku - sama ścieżke - nie mogłem jej za cholerę odczytać, kiedy od razu po wykonaniu okna "Otworz jako" działał JESZCZE program. To znaczy, że zdawało mi się, że gdy starałem się odczytać tą ścieżkę do innego stringu jakby operacja czytania "była omijana" albo string był pusty po niej. Kiedy natomiast zamknąłem ten program i otworzyłem go ponownie (wcześniej oczywiście zmodyfikowałem kod tak, by czytał do tego innego stringu od samego początku i przypisywał potem pen string do "alojza", który ustawia tapetę). Wtedy program działał normalnie. [???]

Ten w ogóle WinAPI to głupia sprawa: nie chcę mu się współpracować z żadnymi bibliotekami. Ale potrzebuję go do tego okna i prosiłbym Was o użyczenie mi pomocy jaknajmożliwiej jaknajprędzej.

Jeszcze raz proszę i jeszcze raz dziękuję :d