Click here to Skip to main content
Rate this: bad
good
Please Sign up or sign in to vote.
See more: Windows MFC GDI+ VC10.0
i have made a software to draw lines by mouse(Lineto) it is a mfc program based on cview and a sdi but whenever i resize or minimize my window all the drawing in the window is erased
how can i stop it
may be some onpaint event to retain the drawing
plz help
Posted 2-Apr-11 1:03am
nbd09389
Rate this: bad
good
Please Sign up or sign in to vote.

Solution 1

You need to do the drawing in the OnPaint() handler.
  Permalink  
Comments
nbd09 at 2-Apr-11 6:49am
   
how can i do drawing on onpaint() handler
i do it on a mouse event like on mouse move event and mouse button down
and up
Hans Dietrich at 2-Apr-11 7:05am
   
Don't you keep a list of the drawing objects? Simply repaint the list in OnPaint().
nbd09 at 2-Apr-11 7:22am
   
thank you i overlooked it
SAKryukov at 4-Apr-11 23:18pm
   
My 5.
--SA
Rate this: bad
good
Please Sign up or sign in to vote.

Solution 2

1.) you should never paint outside a paint message.
2.) you should store your data (bitmap or point-list).
3.) you should handle the erase and the paint messages.
4.) draw your lines (or whatelse) onpaint message.
5.) to paint into a bitmap is very simple but limited to the bitmap size themselves.
Good luck.
 
[edit]
6.) to update the window - call the InvalidateRect function.
  Permalink  
v2

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
0 OriginalGriff 480
1 Maciej Los 304
2 Richard MacCutchan 225
3 BillWoodruff 169
4 Suraj Sahoo | Coding Passion 155
0 OriginalGriff 8,759
1 Sergey Alexandrovich Kryukov 7,407
2 DamithSL 5,639
3 Maciej Los 5,269
4 Manas Bhardwaj 4,986


Advertise | Privacy | Mobile
Web02 | 2.8.1411028.1 | Last Updated 2 Apr 2011
Copyright © CodeProject, 1999-2014
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100