The RECT structure
-
siehe
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/rectangl_6cqa.aspdas steht:
typedef struct _RECT { LONG left; LONG top; LONG right; LONG bottom; } RECT, *PRECT;
und wie muss ich das jetzt nun bei mir im quelltext deklarieren?
habe das so versucht, (hab NULL plan
)
RECT *burtzel;
-
looooool, kannst du denn kein c oder c++? was machst du dann bitteschön hier im forum?
-
Mit * ist es nur ein Pointer auf ein RECT - also * weglassen
-
ne, hab's nie gelernt
funkt aber jetzt
RECT burtzel;
-
Aber wieso meckert mein BCB jetzt,
von wegen "GetClientRect hat zuviele Parameter" !!??RECT rcClient;
GetClientRect(Application->Handle, &rcClient);
-
Ich vermute mal, dass es in VCL auch ein GetClientRect gibt, was wohl eine Membermethode einer Fensterklasse sein wird und daher kein Fensterhandle mehr übergeben werden muss / darf
-
Dieser Thread wurde von Moderator/in flenders aus dem Forum WinAPI in das Forum Borland C++ Builder (VCL/CLX) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Hallo
Wie in der BCB-Hilfe steht :
TRect Rect; Rect = Panel1->GetClientRect();
Die WinAPI-Funktion wirst du nicht brauchen.
bis bald
akari
-
[cpp] RECT rcClient;
**::**GetClientRect(Application->Handle, &rcClient);[/cpp]
-
In dem Header windows.h ist nur der Typ declariert
typedef struct _RECT { LONG left; LONG top; LONG right; LONG bottom; } RECT, *PRECT;
Da die Api Funktion
int FillRect( HDC hDC, // handle to DC CONST RECT *lprc, // rectangle HBRUSH hbr // handle to brush );
Die Daten der Structur RECT benötigt.
Es existiert noch keine Instanz von _REC (sprich es ist noch kein Speicher für die Structure reserviert).
Würde die Instanz von _REC bereits in windows.h erzeugt, würde bei jedem includieren von windows.h der Speicher für _RECT reserviert, auch wenn
du die Structure überhaupt nicht benötigst.In deinem Prog erzeugst du erst die Instanz
_RECT rect;
Nun hast du in deinem Prog die Instanz rec erzeugt und kannst sie initialisieren.
rec.left = ...; rec.top = ...; rec.right = ...; rec.button = ...;
Und an FillRect übergeben.
FillRect(FillRect(HDC hDC,&rect,HBRUSH hbr);
Natürlich musst du auch noch die Instanzen HDC sowie HBRUSH erzuegen und
initialisieren, diese sind ebenfalls typedefs in windows.h.