Ein paar fragen ;-)
-
So hab dat ding erstmal geupdatet
http://skippy.uttx.net/downloads/OneMillion.rar
nun 109kbHinzugefügt wurden:
-Bitmap als Hintergrund
-Farbige Buttons (habe die Klasse CRoundButton2 von Codeproject.com verwendet)
-Fifty Fifty Joker (funktion selbst sieht aber Bescheiden aus)
-erstmal nen vorläufiges Icon und LogoWas noch kommen soll:
-Noch ein paar Optische Spielereien mit den buttons
-Dialog für die Einstellungen
-Klasse für SplashScreen?
-Laden der Fragen in eignen Threat auslagern?
-3Unterschiedliche Schwierigkeitstufen für die Fragen? je ne eigene Datei
- möglichkeit endlich mit tastatur zu Spielen
sonst noch jemand ein paar Ideen auf Lager?
Eine frage hätte ich noch wie kann man zur Laufzeit des Programmes das Bild eines Picture Controls ändern? find das leider irgendwie nicht
-
PictureCtrl ?! Naja...
Referenzen
CStatic::SetBitmap
CWnd::Invalidateaja:
for(int i = 0; i<=8; ++i)...
for(unsigned int i = 0; i < 9; ++i)Weißt du auch warum ++i und nicht i++ ?! usw ?!

Ne public membervariable ist meistens auch sehr unsauber... also bsw dein CStatic m_Frage... wenn de da von außen drauf zugreifen willst... Getter.. Setter
Was soll dieses Denglish ?! bsw. IsAnswerKorrekt(...)
Hmm noch was... BOOL != bool !!! BOOL ist als int definiert.. d.h. verbraucht mehr byte!
-
so hab mal wieder nen kleines Problem
LRESULT CALLBACK COneMillionDlg::WndProc(HWND hWnd, UINT uMessage, WPARAM wParam, LPARAM lParam) { switch(uMessage) { case WM_KEYDOWN: { switch(wParam) { case 'A': case '1': OnStnClickedAntwA(); break; case 'B': case '2': OnStnClickedAntwB(); break; case 'C': case '3': OnStnClickedAntwC(); break; case 'D': case '4': OnStnClickedAntwD(); break; }; return 0; } default: return CDialog::DefWindowProc(hWnd, uMessage, wParam, lParam); }; return 0; }warum bekomme ich folgenden fehler
: error C2660: 'CWnd::DefWindowProcA' : function does not take 4 arguments
und was ist falsch an der funktion
-
Boa warum sollte man dir was sagen wenn du es eh wieder nicht umsetzt?! Das ist ja abartig... du hast keinerlei Fehlerbehandlung wenn die Fragen Datei nicht existiert nix! arg -.- Man neeee
So das ist das letzte was ich dir noch helfe... deine Fragen sind so stupide.
Guckst du vllt auch mal in die MSDN Library?! CWnd::DefWindowProc
Arg jetzt denkt sich der kleine Bubal... ohh wie kann das denn?! Jo ganz einfach... CDialog ist von CWnd abgeleitet! UI! Und was stellen wir fest ... Wobei ich garnicht wissen will was das geben soll was du da fummelst.. -.-
[edit]Ahh jo jetzt weiß ich was das werden soll... CWnd::OnChar
CWnd::OnKeyDown
Wenn de jetzt noch überlegst was ich oben geschrieben hab... AHH... stimmt ja.. CDialog ist von CWnd abgeleitet! Boa goil da kann ich die Funktion ja überschreiben! WAHNSINN!!![/edit]
-
@(D)Evil
wollt mal schnelle deine Textchen beantworten(hoffe du hast heut bessere Laune)

for(int i = 0; i<=8; ++i)korrigiert
public membervariable CStatic m_Frage
korrigiert ist jetzt protected
Denglish
alte Angewohnheit da ich früher meisst nur Opensource Anwendungen angepasst habe hatte ich meisst meine variabeln u Funktionen in Deutsch angegeben um sie besser unterscheiden zu können. Wird also stück für stück mal nebenbei gefixt
BOOL != bool
habe das erstmal umgeändert bool true und false sind jetzt kleingeschrieben
aber ne frage hätte ich dazu was ist denn der genaue unterschied weil a selbst bei einem mit dem Assistenten erstellte anwendung schon BOOL verwendet wird anstatt bool. Und ich habe es zumindest so gelernt das bool true und false defines sind die den Code optisch besser lesbar machen sollen aber logisch keine veränderung im verhalten des Compiliers bewirken.
WndProc
zu dem Blödsinn sach ich mal am besten nichts hatte bei Google ei bissl rumgesucht aber halt nach WM_KEYDOWN ud fand halt nur lösungen über WndProc nach deinem Post und dem Stichpunkt
kann ich die Funktion ja überschreiben!
hab ich dann Spaßenshalber nochmal nach ON_WM_KEYDOWN
gegoogelt und siehe da man fand dann auch die richtige Lösung (dachte ich jedenfalls)
Stellte dann nach ratlosen rumsuchen und benutzen von Spy++ fest das ich in
meinem Schei.. Programm gar keine WM_KEYDOWN Messages bekomme sondern nur WM_SYSKEYDOWNBoa warum sollte man dir was sagen wenn du es eh wieder nicht umsetzt?! Das ist ja abartig... du hast keinerlei Fehlerbehandlung wenn die Fragen Datei nicht existiert nix! arg -.- Man neeee
zum Anfang ich hoffe mal du meinst damit nicht deine Sinnlose änderung
catch(CFileException* e)geändert zu
catch(CFileException* pException)Ich den Source zu der funktion auch über Google gefunden angeblich ja funktionsfähig. mittlerweile hab ich das aber geändert zwar nicht so sauber wies vorher war mit catch sondern billig über if open = 0 aber es funktioniert
bool CQuiz::LoadQuestions() { CStdioFile file; int Anzahl = 0; CFileException FileExc; if(file.Open("Questions.txt", CFile::modeRead | CFile::typeText, &FileExc) == 0 ) { FileExc.ReportError(); //file.Close(); return false; } else { CString strLine; // Datei zeilenweise auslesen while (file.ReadString(strLine) > 0) { Questions.Add(strLine); Anzahl++; } strLine.Format("%d", Anzahl); NumberOfQuestions = Anzahl; AfxMessageBox(strLine); } file.Close(); return true; }fehlt halt noch nen bissl was in der Richtung datei kann nicht geladen werden mal nachher schauen entweder 10 fragen ins array laden oder nen dialog öffnen über dem man dann per internet ne standard datei laden kann (oder vielleicht soagr per auswahl??) bin mir da noch nicht ganz Schlüssig
-
was soll
for(int i = 0; i<=8; ++i)schon wieder?! erklär ersteinmal warum ++i und nicht i++ ... ich glaub nähmlich das du das so nach belieben machst...
for(unsigned int i = 0; i < 9; ++i)wäre die 100% saubere Lösung...
BOOL ist ein Windowstype. Bzw. BOOL ist in den Windows Headern als int definiert... was du sehr leicht herrausfinden kannst, wenn du mal nen rechtsklick darauf machst und dann auf "Gehe zur Definition.." klickst..
Was das heißt, solltest du wissen ;)Überlegen wir einfach mal:
+-Datentype--+--Bytes--+--Mögliche Werte------------+ | bool | 1 | true; false | | int | 4 | -2147483648 - +2147483647 | +------------+---------+----------------------------+
-
@(D)Evil
schon wieder?! erklär ersteinmal warum ++i und nicht i++ ... ich glaub nähmlich das du das so nach belieben machst...
erstens hab ich nur Zitiert was du angekreidet hast geändert habe ich das nach deinem vorschlag zum ++i heisst das es vor beginn der Schleife schon adiert wird, i++ hingegen erst nach dem Schleifen durchlauf
→ in meinem fall könnte ich auch schreiben
for(unsigned int i = 1; i < 9; i++)zum BOOL dachte ich halt das bool genauso ein normal int ist.
Wobei ich dann nicht verstehe warum die bei MS dann sowas machen die müssten das dann doch am besten wissen
-
tjo du hast im Punkto i++ und ++i schwachsin gequatscht... bei ++i wird einfach i um 1 erhöht.. bei i++ wird ein Objekt von type int erstellt usw usf.
-
++i = Praeinkrement (erst erhoehen und dann naechsten Schritt vollziehen)
i++ = Postkrement (erst naechsten Schritt vollziehen und dann erhoehen)So stehts geschrieben
und halbwegs funktioniert das auch
int a = 0; for(int i = 0; i<=8; i++) { CString strLine; strLine.Format("%d", a++); AfxMessageBox(strLine); }zählt 0,1,2,3,4,5,6,7,8
int a = 0; for(int i = 0; i<=8; i++) { CString strLine; strLine.Format("%d", a++); AfxMessageBox(strLine); }zählt 1,2,3,4,5,6,7,8,9
warum das allerdings hier
for(int i = 0; i<=8; i++)keine auswirkungen hat obwohl es das laut test sollte weiss ich nicht
-
jo... ich hab dir das gerade erklärt warum das so in der schleife ist... aber wenn du mal wieder nicht beherzigst was ich sage... selbst schuld... http://www.fun-soft.de/showtopic.php?threadid=15200 steht das was ich gesagt hab auch noch mal in etwa
-
@(D)Evil
danke für den Linkdas heisst doch eigentlich das man i++ eigentlich aus performance gründen nur dann nutzen sollte wenns nicht anders geht ansonsten immer ++i.
(wobei ich mich dann frage warum es denn in tutorials nie erwähnt wird)werd dann mal anfangen an meinen Sourcecode rumzupfuschen immerhin muss ja langsam der netzwerkmodus reingebastelt werden

aber keine angst ich werde da was halbwegs fertiges nutzen (hatte bei codeproject mal irgend ne dll dafür gefunden die zwar eigentlich ein Chat- Server und Client Framework ist)
-
(D)Evil schrieb:
jo... ich hab dir das gerade erklärt warum das so in der schleife ist... aber wenn du mal wieder nicht beherzigst was ich sage... selbst schuld... http://www.fun-soft.de/showtopic.php?threadid=15200 steht das was ich gesagt hab auch noch mal in etwa
@(D)Evil: Hast Du dir auch mal den Post von Helmut durchgelesen? So kenn ichs eigentlich auch

-
Hmm ne stimmt... das hab ich übersehen... aja... im Thread auch angegeben: http://www.fun-soft.de/showtopic.php?threadid=1042&time=1149074813 ...
jo also hab ich mich doch vertan... man so nen mist... das hätte ich nicht erwartet

2. Es handelt sich nicht um einen eingebauten Datentypen (denn für diese gibt es hinsichtlich Performance idR keinen Unterschied).