string to HWND

Thomasio

Erfahrenes Mitglied
Ich habe 15 Fenster, mit den namen myWindow1, myWindow2 ... usw.

jetzt möchte ich in einer Schleife ein bestimmtes Fenster ansprechen, für MoveWindow, WM_PAINT oder sonstwas, also mache ich eine Schleife

for(int i = 1; i < 16; i++)
{

// hier brauche ich sowas wie
// x = (HWND)"myWindow" + i;
// so dass ich dann machen kann:

SendMessage(x, WM_PAINT, 0, 0);

}


wie kann ich da aus "myWindow" und dem Wert von i ein gültiges HWND bauen?

danke im voraus
 
Hallo,

in welcher Beziehung stehen myWindow1, myWindow2 ... usw. zu den jeweiligen Fenstern ? Sind das willkürlich von dir vergebene Bezeichnungen, Namen der Fensterklassen oder die Fenstertitel?
Die beste Lösung wäre wohl, direkt bei der Erzeugung der Fenster das jeweilige Fensterhandle zusammen mit der Bezeichnung zu speichern (z.B. in einer Map).

Gruß
MCoder
 
Code:
LRESULT CALLBACK myWindow1window (HWND, UINT, WPARAM, LPARAM);
// das ganze 15 mal

wc.lpszClassName = "myWindow1WindowName";
// auch das 15 mal

myWindow1 = CreateWindow("myWindow1WindowName", usw.);
// schon wieder 15 mal

effektiv muss im WM_PAINT stehen:

SendMessage(myWindow1, WM_PAINT, 0, 0);

Ich kann zwar einen string erzeugen, mit dem Inhalt "myWindow1", ich weiss nur nicht, wie ich von dem string dann zum HWND komme
 
ich weiss nur nicht, wie ich von dem string dann zum HWND komme
Auf die Weise gar nicht.

Speichere doch die Fensterhandles in einem globalen Array ab:

C++:
HWND hwndArray[15];

// ...

hwndArray[0] = CreateWindow("myWindow1WindowName", ...);
hwndArray[1] = CreateWindow("myWindow2WindowName", ...);
hwndArray[2] = CreateWindow("myWindow3WindowName", ...);
// usw.

// ...

for(int i = 0; i < 15; i++)
{
    SendMessage(hwndArray[i], WM_PAINT, 0, 0);
}
Gruß
MCoder
 
Zurück