Willkommen |
|
myGully |
|
Links |
|
Forum |
|
|
|
17.08.11, 14:48
|
#1
|
Newbie
Registriert seit: Feb 2010
Beiträge: 66
Bedankt: 34
|
Wie gehts einfacher?
Hi Leute^^
Hab mal wieder eine Frage zum Programmieren in Windows API.
Es geht um folgendes:
Code:
case WM_PAINT:
[...]
else if(iX==168)
{PAINTSTRUCT ps;
HDC hDC;
const char szText[] = "Where shall I head first?^_^";
const char szText1[] = "(Remind the time you need!)";
const char Ent1[] = "\"Sports Center\"";
const char Ent2[] = "Room 2-15";
const char Ent3[] = "School Training Field";
const char Ent4[] = "School basement";
const char Ent1ge[] = "> \"Sports Center\"";
const char Ent2ge[] = "> Room 2-15";
const char Ent3ge[] = "> School Training Field";
const char Ent4ge[] = "> School basement";
hDC = BeginPaint(hwnd, &ps);
{
TextOut(hDC, 180, 20, szText, sizeof(szText) - 1);
{
if(iWahl == 1)
{
if(Frei!=1 && Frei!=12 && Frei!=123 && Frei!=124 && Frei!=13 && Frei!=132 && Frei!=134 && Frei!=14 && Frei!=142 && Frei!=143 && Frei!=21 && Frei!=213 && Frei!=214 && Frei!=231 && Frei!=241 && Frei!=31 && Frei!=312 && Frei!=314 && Frei!=321 && Frei!=341 && Frei!=41 && Frei!=413 && Frei!=412 && Frei!=431 && Frei!=421)
{TextOut(hDC, 200,150, Ent1ge, sizeof(Ent1ge) - 1);}
TextOut(hDC, 100,250, Ent2, sizeof(Ent2) - 1);
TextOut(hDC, 200,350, Ent3, sizeof(Ent3) - 1);
TextOut(hDC, 350,250, Ent4, sizeof(Ent4) - 1);
}
}
if(iWahl == 2)
{
if(Frei!=1 && Frei!=12 && Frei!=123 && Frei!=124 && Frei!=13 && Frei!=132 && Frei!=134 && Frei!=14 && Frei!=142 && Frei!=143 && Frei!=21 && Frei!=213 && Frei!=214 && Frei!=231 && Frei!=241 && Frei!=31 && Frei!=312 && Frei!=314 && Frei!=321 && Frei!=341 && Frei!=41 && Frei!=413 && Frei!=412 && Frei!=431 && Frei!=421)
{TextOut(hDC, 200,150, Ent1, sizeof(Ent1) - 1);}
TextOut(hDC, 100,250, Ent2ge, sizeof(Ent2ge) - 1);
TextOut(hDC, 200,350, Ent3, sizeof(Ent3) - 1);
TextOut(hDC, 350,250, Ent4, sizeof(Ent4) - 1);
}
if(iWahl == 3)
{
if(Frei!=1 && Frei!=12 && Frei!=123 && Frei!=124 && Frei!=13 && Frei!=132 && Frei!=134 && Frei!=14 && Frei!=142 && Frei!=143 && Frei!=21 && Frei!=213 && Frei!=214 && Frei!=231 && Frei!=241 && Frei!=31 && Frei!=312 && Frei!=314 && Frei!=321 && Frei!=341 && Frei!=41 && Frei!=413 && Frei!=412 && Frei!=431 && Frei!=421)
{TextOut(hDC, 200,150, Ent1, sizeof(Ent1) - 1);}
TextOut(hDC, 100,250, Ent2, sizeof(Ent2) - 1);
TextOut(hDC, 200,350, Ent3, sizeof(Ent3) - 1);
TextOut(hDC, 350,250, Ent4ge, sizeof(Ent4ge) - 1);
}
if(iWahl == 4)
{
if(Frei!=1 && Frei!=12 && Frei!=123 && Frei!=124 && Frei!=13 && Frei!=132 && Frei!=134 && Frei!=14 && Frei!=142 && Frei!=143 && Frei!=21 && Frei!=213 && Frei!=214 && Frei!=231 && Frei!=241 && Frei!=31 && Frei!=312 && Frei!=314 && Frei!=321 && Frei!=341 && Frei!=41 && Frei!=413 && Frei!=412 && Frei!=431 && Frei!=421)
{TextOut(hDC, 200,150, Ent1, sizeof(Ent1) - 1);}
TextOut(hDC, 100,250, Ent2, sizeof(Ent2) - 1);
TextOut(hDC, 200,350, Ent3ge, sizeof(Ent3ge) - 1);
TextOut(hDC, 350,250, Ent4, sizeof(Ent4) - 1);
}
}
EndPaint(hwnd, &ps);
}
[...]
Der Nutzer hat 4 Auswahlmöglichkeiten. Mit den Pfeiltasten ändert er int iWahl auf 1, 2, 3 oder 4, damit wird gesteuert, auf welchem Feld er sich befindet. Durch Enter bestätigt er dann die Wahl.
Wenn der Nutzer nun einen Pfad z.B. iWahl=1 wählt, erscheint neuer Text und so.
Später soll er dann wieder auf iX=168 geführt werden. Wenn er dann dort ist, soll die Auswahlmöglichkeit des vorher beschrittenen Weges, im Beispiel jetzt der Weg von iWahl=1, nicht mehr angezeigt werden (Ist noch unvollständig, ich weiß aber das mache ich jetzt erst^^'). Gleichzeitig bekommt die Variable int Frei den Wert von iWahl "hinzugefügt". Im Beispiel wird Frei auf 1 gesetzt. Wenn nun der User den Weg iWahl=3 wählt, wird Frei auf 13 gesetzt, bei Weg iWahl=2, wird Frei auf 12 gesetzt.
Damit ergeben sich 16*4 Möglichkeiten. Damit müsste ich für jeden Fall eine ewig lange if-Bedingung schreiben, was ich gerade auch mache.
Da es nervig ist, andauern wieder diese Fälle abzudecken, wollte ich nachfragen, ob jemand eine einfachere Lösung weiß. Mir will partue nichts einfallen. Wenn ich Zufallszahlen dabei nutze, käme ich ja auf das gleiche raus, oder?
Ich bedanke mich für jede Hilfe^^
MfG,
CJ3
__________________
Es gehört zum Anstand, sich zu bedanken, wenn einem geholfen wurde, also danke liebe Gullianer c:
|
|
|
Forumregeln
|
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren
HTML-Code ist Aus.
|
|
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:06 Uhr.
().
|