HANDLE von HWND
-
Hi@all,
ich möchte gerne etwas in die Zwischenablage schreiben und hole mir das HWND auf das Feld folgendermaßen:
HWND hWndPage = GetParent(); HWND hWndNummer = ::GetDlgItem(hWndPage, 1006); nLength = ::GetWindowTextLength(hWndNummer);//Gibt den richtigen Wert zurück. //Nun brauche ich mein Handle auf das hWndNummer um es an SetClipboardData zu übergeben.Wie Bekomme ich nun mein Handle?
//Ich habe es über GlobalAlloc versucht HANDLE hNummer = GlobalAlloc(GMEM_MOVEABLE, nLength); if(!OpenClipboard()) { AfxMessageBox("Zwischenablage kann nicht geöffnet werden"); return res; } // Aktuellen Inhalt der Zwischanablage löschen if(!EmptyClipboard()) { AfxMessageBox("Zwischenablage kann nicht geleert werden"); return res; } // Daten eintragen if(::SetClipboardData(CF_UNICODETEXT, hNummer) == NULL) { AfxMessageBox("Zwischenablage konnte nicht gesetzt werden"); CloseClipboard(); return res; } //So bekomme ich aber nur binäre Werte in die Zwischenablage //möchte aber, das dort der Text reingegeben wird, welcher in dem Feld //hWndNummer steht.Gruß
CrazyPlaya
-
Also meiner Meinung nach wird in der Zwischenablage nichts stehen oder irgendwelchen veralteten Kram. Du schreibst nämlich nichts in deinen angelegten Globalen Speicher!
Wie es geht?
Ein Beispiel hier:
http://www.codeguru.com/cpp/w-p/clipboard/article.php/c3011/
Hier drin hat es auch noch eines:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/dataexchange/clipboard/usingtheclipboard.aspUnd übrigens, du benutzt die WinAPI und keine MFC. Daher gehört dein Thread eigentlich eher dort hin.
Grüssli