Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
ZeroCool Mini JLI'ler
Anmeldedatum: 26.01.2005 Beiträge: 15
Medaillen: Keine
|
Verfasst am: 30.01.2005, 17:43 Titel: Dialogbox Problem |
|
|
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 |
|
|
Cyianor Super JLI'ler
Anmeldedatum: 23.12.2002 Beiträge: 452
Medaillen: Keine
|
Verfasst am: 30.01.2005, 18:05 Titel: |
|
|
Klar compiliert er's aber mich würd mal interessieren was das für eine komische Funkton da sein soll (IDD_DIALOG)
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 |
|
|
ZeroCool Mini JLI'ler
Anmeldedatum: 26.01.2005 Beiträge: 15
Medaillen: Keine
|
Verfasst am: 30.01.2005, 18:39 Titel: |
|
|
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 |
|
|
FH Super JLI'ler
Alter: 36 Anmeldedatum: 16.10.2004 Beiträge: 438
Medaillen: Keine
|
Verfasst am: 30.01.2005, 19:48 Titel: |
|
|
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 |
|
|
ZeroCool Mini JLI'ler
Anmeldedatum: 26.01.2005 Beiträge: 15
Medaillen: Keine
|
Verfasst am: 30.01.2005, 20:02 Titel: |
|
|
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 |
|
|
Patrick Dark JLI Master
Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
Verfasst am: 30.01.2005, 20:28 Titel: |
|
|
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 _________________ '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 |
|
|
FH Super JLI'ler
Alter: 36 Anmeldedatum: 16.10.2004 Beiträge: 438
Medaillen: Keine
|
Verfasst am: 30.01.2005, 23:10 Titel: |
|
|
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.
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 |
|
|
ZeroCool Mini JLI'ler
Anmeldedatum: 26.01.2005 Beiträge: 15
Medaillen: Keine
|
Verfasst am: 31.01.2005, 09:09 Titel: |
|
|
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 |
|
|
Patrick Dark JLI Master
Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
|
Nach oben |
|
|
ZeroCool Mini JLI'ler
Anmeldedatum: 26.01.2005 Beiträge: 15
Medaillen: Keine
|
Verfasst am: 31.01.2005, 12:10 Titel: |
|
|
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 |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 31.01.2005, 16:46 Titel: |
|
|
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 |
|
|
Patrick Dark JLI Master
Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
Verfasst am: 31.01.2005, 16:59 Titel: |
|
|
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 _________________ '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 |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 31.01.2005, 17:22 Titel: |
|
|
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 |
|
|
Kronos Senior JLI'ler
Anmeldedatum: 19.03.2004 Beiträge: 290
Medaillen: Keine
|
Verfasst am: 31.01.2005, 17:30 Titel: |
|
|
außerdem ist strcpy bufferoverflow anfällig, wenn schon, dann strncpy! |
|
Nach oben |
|
|
Patrick Dark JLI Master
Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
Verfasst am: 31.01.2005, 17:33 Titel: |
|
|
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 |
|
|
|