Fenster Titel verändern!

SCIPIO-AEMILIANUS

aka Dubdidadu
Ich hab folgende Frage:

Ich hab eine Anwendung laufen mit dem Titel: "api1".
Und jetzt wil ich mit einem anderen Programm, diesen Titel in einen anderen umwandeln.
Ich weis, wie man mit HWND den Fenstertitel erhält aber nicht andersrum!
Wie kann ich das bewerkstelligen?
 
Zuletzt bearbeitet:
Wie darf ich das mit FindWindow interpretieren? Bisher hab ich es immer nur geschafft mir damit geöffnete Fenster anzeigen zulassen! Oder besser gesagt MSDN empfield mir dann folgendes:
Code:
BOOL SetWindowText(          HWND hWnd,
    LPCTSTR lpString
);

Problem ist der Compiler sagt mir dann, dass Dieser Befehl keine 2 Argumente mag!?
 
Zuletzt bearbeitet:
Wie darf ich das mit FindWindow interpretieren
"FindWindow" liefert dir das Fenster-Handle (HWND) zu einem Fenster, z.B.:
C++:
HWND hWnd = ::FindWindow(NULL, _T("api1"));
Problem ist der Compiler sagt mir dann, dass Dieser Befehl keine 2 Argumente mag!?
Arbeitest du mit der MFC? Wenn du "SetWindow" innerhalb einer von CWnd abgeleiteten Fensterklasse aufrufst, wird immer die (von CWnd geerbte) gleichnamige Methode dieser Klasse aufgerufen. Die benötigt aber nur einen Parameter, weil sie nur auf die aktuelle Klasse wirkt.
Wenn du stattdessen die API-Funktion verwenden willst, musst du mit dem sogenannten Scope Resolution Operator "::" den globalen Namensraum wählen:
C++:
::SetWindowText(hWnd, _T("Text"));
"SetWindowA" funktioniert deswegen, weil es eine solche Methode nicht gibt und daher automatisch die Funktion des globalen Namensraumes verwendet wird. Allerdings sollte man normalerweise nicht explizit die die Varianten mit "A" (ANSI) und "W" (UNICODE) verwenden. Diese werden vom Compiler/Linker automatisch in Abhängigkeit vom Projekttyp verwendet.

Gruß
MCoder
 
Zuletzt bearbeitet:
Zurück