O
Hallo zusammen,
ich versuche ein simples Childfenster zu erstellen, mit der Klasse WC_IPADDRESS.
So sollte es aussehen:
http://www.yevol.com/en/bcb/forms/ipaddress2.gif
- 4 Bereiche
- 3 Punkte
Mein IP-Eingabefeld sieht jedoch so aus:
http://img215.imageshack.us/img215/659/wtfipfeld.jpg
- 1 (2) Bereich(e)
- 1 Punkt
- Man kann nicht drin schreiben ...
===========================
Ich arbeite "unter" Windows 7 64Bit, mit Visual Studio 2010 Express.
Ich kann nicht den gesamten Code posten, das IP-Eingabefeld wird jedoch durch WM_CREATE-Message erzeugt.
INITCOMMONCONTROLSEX comcon;
comcon.dwICC = ICC_INTERNET_CLASSES;
comcon.dwSize = sizeof(INITCOMMONCONTROLSEX);
BOOL Ergebnis = InitCommonControlsEx(comcon);
Ip.hHandle = CreateWindow(WC_IPADDRESS, "", WS_CHILD | WS_VISIBLE, 0, 0, 0, 0, hWnd, (HMENU)&i, ((LPCREATESTRUCT) lParam) ->hInstance, NULL);
SendMessage(Ip.hHandle, IPM_SETADDRESS, NULL, MAKEIPADDRESS(10, 0, 10, 32));
Durch die WM_SIZE-Message wird das Child positioniert und dargestellt:
MoveWindow(Ip.hHandle, Ip.StartX, Ip.StartY, Ip.Breite, Ip.Höhe, true);
Mit GetLastError() erhalte ich keine Fehler. Als wäre alles richtig gelaufen.
Und nur um sicher zu gehen, habe ich nach jeder Funktion GetLastError() aufgerufen...
Alle anderen Childs funktionieren, ob TreeView, Edit, ProgressBar usw.
Dies ist auch der gesamte Code für das IP-Eingabefeld. Mehr wollte, konnte ich noch nicht versuchen ...
Vielen Dank für eure Hilfe.
Ombre
Edit:
Ok, Problem gefunden. Die MoveWindow()-Funktion zerschießt das Child.
Position direkt in der CreateWindow()-Funktion angeben und das Child wird richtig dargestellt.
Habe diese Tatsache nicht in der MSDN finden können.
Trotzdem Danke.