JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=b353e2da221ce6a4a67e0a751f05deffMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Dialogbox Problem

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
ZeroCool
Mini JLI'ler



Anmeldedatum: 26.01.2005
Beiträge: 15

Medaillen: Keine

BeitragVerfasst am: 30.01.2005, 17:43    Titel: Dialogbox Problem Antworten mit Zitat

hab folgendes Problem.
will eine Dialogbox vor einer Fullscreen anwendung öffnen lassen.
es geht hier um das spiel asteroids das auch im buch beschrieben ist .
ich will mit der Dialogbox nen namen eintragen lassen und den dann in einer Highscore Tabelle abspeichern.

hab mich durch tausende Thread gewüllt aber nichts ging irgendwie.

mich würde in erster linie Interessieren wie ich eine Dialogbox aufrufe.

CPP:
DialogBox(hInstance,MAKEINTRESOURCE(IDD_DIALOG),hWnd,NULL);


hatte es so versucht (natürlich hab ich vorher das Dialog fenster nach meinen wünschen geändert bzw. bearbeitet).
bis her hatte ich es so. der compeliert das zwar aber zeigt nichts an.

CPP:
int IDD_DIALOG(HINSTANCE hInstance, LPCTSTR lpTemplate, HWND hWndParent, DLGPROC lpDialogFunc)
{
if(IDOK)
{
return 0;
}   

...

int WINAPI WinMain(HINSTANCE hInstance,     
                   HINSTANCE hPrevInstance, 
                   LPSTR lpCmdLine,         
                   int nCmdShow)             
{   
   
   DialogBox(hInstance,MAKEINTRESOURCE(IDD_DIALOG),hWnd,NULL);
...

}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Cyianor
Super JLI'ler



Anmeldedatum: 23.12.2002
Beiträge: 452

Medaillen: Keine

BeitragVerfasst am: 30.01.2005, 18:05    Titel: Antworten mit Zitat

Klar compiliert er's aber mich würd mal interessieren was das für eine komische Funkton da sein soll (IDD_DIALOG) Wink

Ne CALLBACK, die du normalerweise bei einer Dialogbox auch noch brauchst is das auf jeden Fall nich.

Probier's mal so:

CPP:
LRESULT CALLBACK DlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    ...
}

INT WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR, INT)
{
    DialogBox(hInst, MAKEINTRESOURCE(IDD_DIALOG), NULL, DlgProc);

    ...

    return 0;
}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ZeroCool
Mini JLI'ler



Anmeldedatum: 26.01.2005
Beiträge: 15

Medaillen: Keine

BeitragVerfasst am: 30.01.2005, 18:39    Titel: Antworten mit Zitat

ok hab es soweit aber jetzt hab ich nen fehler

CPP:
BOOL CALLBACK DlgProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam);

HWND hDlg = 0;

BOOL CALLBACK DlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
   {
      switch(msg)
      {
         case WM_DESTROY:
                   PostQuitMessage(0);
                    return 0;
                break;       
      }

    return FALSE;
   }

// Windows main-Funktion
int WINAPI WinMain(HINSTANCE hInstance,     
                   HINSTANCE hPrevInstance, 
                   LPSTR lpCmdLine,         
                   int nCmdShow)             
{   
    hDlg = CreateDialog(hInstance, MAKEINTRESOURCE(IDD_DIALOG), GetDesktopWindow(), DlgProc);

    int r = GetLastError();

    if(hDlg == NULL)
    {
       MessageBox(NULL, "Fehler", "Fehler", MB_OK);
    }
   
    ShowWindow(hDlg,SW_SHOW);
   BOOL CALLBACK DlgProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam);

...
}


aber der sagt mir nun das er IDD_DIALOG nicht kennt obwohl ich die Dialogbox so genannt hab. muss man die Dialogbox noch irgendwie einbinden?
hab sie einfach dem Projekt hinzugefügt.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
FH
Super JLI'ler


Alter: 36
Anmeldedatum: 16.10.2004
Beiträge: 438

Medaillen: Keine

BeitragVerfasst am: 30.01.2005, 19:48    Titel: Antworten mit Zitat

Hast du die Resource.h includiert? Oder wie immer die bei dir heißt?
Gruß

FH
_________________
goto work, send your kids to school
follow fashion, act normal
walk on the pavement, watch T.V.
save for your old age, obey the law
Repeat after me: I am free
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ZeroCool
Mini JLI'ler



Anmeldedatum: 26.01.2005
Beiträge: 15

Medaillen: Keine

BeitragVerfasst am: 30.01.2005, 20:02    Titel: Antworten mit Zitat

jo danke schon mal für die antworten.
die resource .h hat mir gefehlt

das fenster wird nun angezeigt aber leider nicht modal.
weis einer wie mal fenster modal hinbekommt?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 30.01.2005, 20:28    Titel: Antworten mit Zitat

Hi,

ich würde keine Dialogbox in einer Vollbildanwendung anzeigen lassen, das Dingen kann Dir dank mancher Treiber, regelrecht den Renderingcontext zerschießen. Das selbe gillt auch für Menüs die über einen Renderingcontext gehen.

Am besten ist Du renderst ein einfaches Rechteck (mit schön alphablending) und darauf dann die Highscore, die 20-30 Zeilen Mehrarbeit kann man sich schon antun und sieht auch stylischer aus Smile
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
FH
Super JLI'ler


Alter: 36
Anmeldedatum: 16.10.2004
Beiträge: 438

Medaillen: Keine

BeitragVerfasst am: 30.01.2005, 23:10    Titel: Antworten mit Zitat

Also: Beim C++6 kann man das machen, indem man bei den Eigenschaften unter "weitere Formate" "Systemmodal" angibt.
Du kannst es auch von Hand einfügen, indem man unter Style "DS_SYSMODAL" angib. Letzteres werden nur Leute machen die den Editor net mögen. Wink
ABER: Wie Patrick schon sagte: Das ist Lebensgefährlich. DX regiert darauf recht allergisch (bei mir hat ers mal zum Absturz geschafft). DX mag das ganz und gar net, wenn man es in den Vollbild-Modus bringt, um ihm dann mit ner DialogBox den wieder wegzunehmen!
Gruß

FH
_________________
goto work, send your kids to school
follow fashion, act normal
walk on the pavement, watch T.V.
save for your old age, obey the law
Repeat after me: I am free
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ZeroCool
Mini JLI'ler



Anmeldedatum: 26.01.2005
Beiträge: 15

Medaillen: Keine

BeitragVerfasst am: 31.01.2005, 09:09    Titel: Antworten mit Zitat

geht alles perfekt.

weis einer wie man etwas aus der Textdatei ausliest?
speziell aus der zweiten oder anderen zeile ausser der ersten.
die erste bekomm ich ausgelesen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 31.01.2005, 09:20    Titel: Antworten mit Zitat

http://www.c-plusplus.de/forum/viewtopic.php?t=39469

*hust*
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ZeroCool
Mini JLI'ler



Anmeldedatum: 26.01.2005
Beiträge: 15

Medaillen: Keine

BeitragVerfasst am: 31.01.2005, 12:10    Titel: Antworten mit Zitat

wie kann man aus z.B. einen char-array nur einen Bestimmten teil taus zu kopieren.

habs mal so :

CPP:
char Puffer[200];
fgets(Puffer,199,Highscore);

for(int i=0;i<=19;i++)
{
strcpy(Spieler[1].Name[i],Puffer[i]);
}

doch das geht nit.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 31.01.2005, 16:46    Titel: Antworten mit Zitat

was soll das strcpy?
wenn du da in der Schleife einzelne Zeichen kopierst, kannst du die auch direkt zuweisen!
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 31.01.2005, 16:59    Titel: Antworten mit Zitat

stringcopy

ZeroCool
Schau dir mal die STL an, da gibbet haufenweise feine container, wie z.B. std::basic_stream<T> und co, die helfen dir! Und lass diesen C-Kram weg Wink
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 31.01.2005, 17:22    Titel: Antworten mit Zitat

achja, ok, ich wusste schon, das man damit char-Arrays kopiert (also normalerweise), aber bei einer so direkten zuweisung in einer Schleife hat das doch nix verloren, oder etwa doch? Ich fragte mich nicht, wo der Sinn von strcpy liegt, sondern wo der Sinn seiner verwendung in diesem Fall liegt.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Kronos
Senior JLI'ler



Anmeldedatum: 19.03.2004
Beiträge: 290

Medaillen: Keine

BeitragVerfasst am: 31.01.2005, 17:30    Titel: Antworten mit Zitat

außerdem ist strcpy bufferoverflow anfällig, wenn schon, dann strncpy!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 31.01.2005, 17:33    Titel: Antworten mit Zitat

Kronos hat Folgendes geschrieben:
außerdem ist strcpy bufferoverflow anfällig, wenn schon, dann strncpy!


Wie bei jeder C-Funktion gelten diese Sachen:
- nicht typsicher
- kein Schutz vor Pufferüberlauf
- nicht als Template verwendbar
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum