Fenster-Handle (hWnd) herausfinden



  • Hallo zusammen,

    habe ein neues Problem:

    Ich möchte gerne in meiner Anwendung [C++/MFC (Compiler VS2008)] vor dem Beenden die Fensterposition in der Registry speichern.

    Hier mein Ansatz:

    this->FormClosing += gcnew System::Windows::Forms::FormClosingEventHandler(this, &Form1::SaveRect);	//Aufruf
    
    private: System::Void SaveRect(System::Object^  sender, System::Windows::Forms::FormClosingEventArgs^  e) {
    
    					 HWND hwnd = {Das brauche ich};
    
    					 GetWindowRect(hwnd, RECT rc);	//Fensterposition ermitteln
    					 char cString[] = rc.top + "|" + rc.left;
    
    					 HKEY hKey;	//hKey definieren
    					 RegCreateKeyEx(HKEY_CURRENT_USER,"Software\\Application",0,0,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&hKey,0);	//Verzeichnis erstellen, falls noch nicht existiert
    					 RegSetValueEx(hKey,"Window-Coordinates",0,REG_SZ,cString,strlen(cString)+1);
    					 RegCloseKey(hKey);	//Handle schließen
    				 }
    

    Nochwas: Wie kann ich Variablen Funktionsübergreifend verwenden? Also eine Variable aus einer anderen Funktion in einer Funktion abrufen?

    Mfg, echo<delta>



  • Edit: Meine nicht MFC, sondern Windows-Forms, sry...



  • Hmm da es ja eine winform ist solltest du einfach mal in die msdn zur form klasse nachschauen. Dort werden auch alle Methoden und Properties aufgelistet. Eine davon, das weiß ich sicher, gibt dir das Handle des Fensters. Wie gesagt einfach mal nachschauen.

    Schöne Grüße


Anmelden zum Antworten