Höhe der Taskleiste auslesen
-
Hallo Zusammen,
ich hoffe ich poste meine Frage an der Richtigen Stelle, sagt sonst bitte kurz bescheid.
Ich habe ein Problem beim erstellen eine Win32 DLL mit C++ in Visual C++ 2008 Express Edition. Dort möchte ich gerne die Höhe der Taskleiste auslesen. Bisher habe ich auch folgenden Code-Teile gefunden: http://www.c-plusplus.net/forum/viewtopic-var-t-is-54634. Allerdings bekomme ich bei der Definition des RECT bzw. CRect Datentyps schon Fehlermeldungen, dass der Bezeichner nicht deklariert ist. Ob ich ohne weitere Deklarationen an die Funktion FindWindow, die ja in der user32.dll liegt, dran komme, weiß ich dann auch noch nicht.Ich freue mich auf eure Tipps.
Vielen Dank und Grüße
Dirk
-
Hi,
da du die Express Edition nutzt, hast du keine MFC.
Damit bist du einmal hier im falschen Forum (ich verschieb dich aber gleich) und es ist klar, dass CRect nicht funktioniert, da es eine Klasse der MFC ist.
-
Dieser Thread wurde von Moderator/in estartu aus dem Forum MFC (Visual C++) in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Ok, dass erklärt natürlich warum CRect nicht läuft. Kann ich dem denn irgendwie Abhilfe verschaffen, oder bleibt mir nichts anderes übrig als die MFC einzusetzen?
-
Die Größe eines Fensters hat doch nichts mit CRect zu tun. Es gibt ja auch RECT und die ganzen Funktionen der Windows API benutzen nur RECT!
Lies mal Doku zu GetSystemMetrics, SM_CYCAPTION
http://msdn2.microsoft.com/en-us/library/ms724385.aspx
-
Wie definiere ich denn ein RECT Objekt? Irgendwie stelle ich mich da wohl grade blöd an, denn VC++ erzählt mir immer, dass meine Variable einem nichtdeklarierten Bezeichner angehört.
Viele Dank für den Link, da habe ich gefunden, dass SystemParameterInfo mit SPI_GETWORKAREA noch besser passt. Das bekomme ich genau die Höhe des Arbeitsbereiches raus.
Viele Grüße
Dirk
-
Hab mich wirklich dämlich angestellt.
Jetzt gehts:RECT rectWorkArea; // = RECT(0, 0, 0, 0); SystemParametersInfo(SPI_GETWORKAREA, 0, (LPVOID)&rectWorkArea, 0); switch (strProperty[0]) { case 't': // Pos. oben (inkl. Rand) return rectWorkArea.top; break; case 'l': // Pos. links ( inkl.Rand) return rectWorkArea.left; break; case 'h': // Höhe (unten - oben) return (rectWorkArea.bottom - rectWorkArea.top); break; case 'w': // Breite (rechts - links) return (rectWorkArea.right - rectWorkArea.left); break; }Optimierungsvorschläge sind natürlich gerne gesehen.

Vielen Dank!
Dirk