Probleme mit Offset in einem Picture-Control
-
Hi Leute,
ich hab ein Problem zu dem ich leider keinen post gefunden habe.
Ich mochte ein Bild in einem Picture-Control plazieren. Das Aufschalten etc. ist schon geschehen. Ein Porb. habe ich die richtige x- und ypos in dem Picture-Control an hand des Borders zu finden. Ich habe folgenden Code geschrieben um die Bordersize zu ermitteln:::GetClientRect(this->mapscreen, lpRect);
::GetWindowRect(this->mapscreen, lsRect);
xpos = lsRect.right - (lsRect.left + lpRect.right);
ypos = lsRect.bottom - (lsRect.top + lpRect.bottom);funktioniert soweit auch, xpos == 4 und ypos == 4, z.B je nach Borderart.
Problem ist: setze ich diese 4 als x- und ypos ein, wird das Bild 2 Borderpixel zu weit inerhald des Picture-Controls aufgeschalten. Setze ich 0 als x-, ypos, dann werden 2 Pixel des Borders weggenommen.
Frage: Kann man die Bordersize auch anders ermittel?, und wieso bekomm ich ne Bordersize von 4, wenn 4 scheinbar nicht als richtige Bordersize stimmt?Leider hab ich mit Visual C++ noch nicht so viel Erfahrung, deshalb please help me :).
Thx für jede Hilfe.
Bis denne codeman
-
Hmm, warum willst du denn das Bild manuell mit Code in das Picture-Control einfügen, wenn man es auch per Properties machen kann...?
Gruß
:: NoName ::
-
hi,
geht leider nicht anders, da dahinter eine komplizierte .dll und .lib sitzt die ein bestimmtes bildformat anzeigen soll. Diese .dll ist in C geschrieben, hab leider kein zugriff auf MFC. So verwende ich die GDI SetDIBitsToDevice-Func um es in den Speicher zu bekommen und anzeigen zu können. Nur bekomm ich das mit diesem sch* offset net hin. Ich versteh es auch net, da der GetClientRect in der *lib, in der ich die MFC verwenden kann und die die *.dll einbetet, doch die Border des Window nicht mitzählt, also müsste doch ne pos von 0,0 stimmen, oder?