C++ FindWindow() mit Variabel

angryolex

Cadet 2nd Year
Registriert
Nov. 2007
Beiträge
24
Hi,

Ich hätte da mal wieder eine kleine Frage und zwar handelt es sich darum wie der Überschrift zu entnehmen um die Windowsfunktion FindWindow().
Diese Funktion sucht ja das angegebene Fenster:

Code:
FindWindow(0,test)

Nun frage ich mich, ob es möglich ist, die Fensternamen Konstante durch eine Variabel zu ersetzen, die dann so bearbeitet werden kann:

Code:
string name;
cin >> name;
FindWindow(0,name);

Für Hilfe wär ich sehr dankbar!
 
Code:
char wName[256];
std::cin.getline(wName, 256);
FindWindow(0, (LPCTSTR)wName);
Versuch es damit. ;)
 
Zu 1. : wtf? Warum sollte das nicht funktionieren?

Ansonsten, mit string.c_str() klappt's zumindest für die ANSI-Variante (notfalls FindWindowA benutzen). Den String mittels Windows-API nach Unicode zu wandeln, wird ne Ecke komplizierter (auch wenn keine "Magie" dahinter steckt).
 
1. weil cin keine anwendung für string kennt. dafür müsstest du eine friend funktion definieren, welche in einen char einliest und diesen in einen string umwandelt.
2. die kodierung ist ansich kein problem mittels mbstowcs
 
Hm mal meinen Code angesehen? :>
Der sollte 100% Funktionieren.

cin.getline(char, size_t) // o.ä.
So und natürlich akzeptiert FindWindow Char arrays. :>
(LPCTSTR muss nicht zwangsläufich Unicode sein)
 
claW. schrieb:
1. weil cin keine anwendung für string kennt.
Woher nimmst du diese Behauptung? Selbstverständlich verarbeitet std::cin std::string.

Siehe ANSI 14882, 21.3.7.9
std::string bringt inserters und extractors für basic_istream und basic_ostream mit.
 
Zuletzt bearbeitet:
das is mir dann aber neu. als ich das das letzte mal versuchen wollte funktionierte es nur, wenn ich es in ein char array eingelesen und in einen string übertragen habe.
 
Zurück
Oben