000
29.07.2005, 17:18 Uhr
Maex0815
|
Hallo,
ich hab ein Problem mit einer Anwendung, in der ich in einem Dialog GDI+ Objekte (Brushes (Linear Gradient, Path Gradient, Textures) etc.) zeichnen will.
Die zweite Herausforderung ist, wenn ich ein Objekt gezeichnet habe, dann will ich es auch mittels Drag & Drop innerhalb des GDI+ Bereichs verschieben.
Realisiert hab ich das Ganze mittsl eines STL vector<> in dem ich die Rectangles von allen GDI+ Objekten abspeichere und mittels des MouseMove Events abprüfe, ob sich die Maus in einem Objekt befindet und die Linke Taste gehalten ist. Wenn ja, dann verschiebe ich das Objekt mit der Maus.
Soweit so gut. Das Problem, welches ich nun habe ist:
Bedingt durch die Mausbewegung bin ich gezwungen im MouseMove nach dem Neuzeichnen der GDI+ Objekte den ganzen Dialog neu zu zeichnen. Ich muß dazu sagen, es ist auf der Form nix drauf, keine Buttons, keine Frames, nix. Die Steuerung des Dialogs erfolgt komplett über PopUp Menüs.
Mein aktuelles Problem ist, wenn ich eine gewisse Zeit (unregelmäßig lang) über meinem Zeichenbereich GDI+ Objekte verschiebe, dann wird auf einmal der Client Bereich meines Fensters nicht mehr innerhalb des Fensters gezeichnet, sondern beginnend vom Desktop (0/0) aus. Also, wenn ich mein Fenster jetzt rechts unten in der Ecke hab, zeichnet das Ding seinen Client Bereich links oben auf dem Desktop.
Hat jemand solch ein Problem schon mal gehabt ? |