PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fragen zu C++



Ricky
26.08.2003, 22:37
1. Was muss ich eingeben, damit ich etwas auf einer bestimmten Taste geschehen lasse?

(also bei VB6 ist das so:
"If KeyCode = 96 Then Label1.Visible = True")
Ich hoffe ihr versteht was ich meine, wenn nicht, schreibt es bitte

2.
Also passieren soll:
Eine Ellipse soll in einer von 32-Bit Farben erscheinen.

Bis jetzt habe ich eingestellt:
(deklaration)
const int FMax = 4;
TColor Farbe[FMax] =
{clBlue, clGreen, clSilver, clRed};

(Methode)

Canvas->Brush->Color = Farbe[random(FMax)];
Canvas->Ellipse (0,0,ClientWidth, ClientHeight);



so, und wie mach ich es so, dass ein random zwichen allen 32-Bit (bzw. 256) Farben besteht?

Hippokrates
27.08.2003, 22:57
1) Wenn unter Windows eine Taste gedrückt wird und du ein Fenster registriert hast, das aktiv ist bekommst du die WM_KEYDOWN Message und in einem der Parameter ist der Key-Code gespeichert.

2)
Im Prinzip:


int iRed = rand() % 256;
int iGreen = rand() % 256;
int iBlue = rand() % 256;

Dann hast du alle Komponenten zufällig generiert.

Ricky
28.08.2003, 00:56
danke, aber die erste antwort kapier ich nicht so ganz....


dann nochmal ne frage:
kann ich wie bei der if-Struktur das && bzw. || auch bei der for-Schleife einsetzen??? aslo so ungefähr:
for ((int i = 0; i<100; i++)&&(int j = 0; j<1000; j++));
geht das???

Hippokrates
28.08.2003, 02:45
1)


HRESULT CALLBACK WndProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
{
switch(Msg)
{
case WM_KEYDOWN:
if(VK_ESCAPE == wParam)
{
QuitProgram();
}
break;
}
return DefWndProc(hWnd, Msg, wParam, lParam);
}

So könnte das aussehen. Wenn Escape gedrückt wird, wird QuitProgram aufgerufen.

2) Nein, das geht nicht. Du musst es verschachteln:



for(int i = 0; i < 10; i++)
{
for(int j = 0; j < 10; j++)
{
...
}
}