Re: [Dev-C++] Whoops - drawing in Windows
Open Source C & C++ IDE for Windows
Brought to you by:
claplace
|
From: Per W. <pw...@ia...> - 2002-10-24 13:19:59
|
One question: Aren't you creating a lot of pens in your drawing loop.
Every time the mouse is moved, you create a new pen, with the same
specification as the pen you crated at your previous mouse move.
Exactly where are the "consumed" pens supposed to be released? At least in
Win32, you only have a finite set of available resource handles, so it
isn't possible to create new pens all the time. The task manager in Win2k
or WinXP may be configured to display number of handles used in the
application. That number shouldn't continuously increase when the program
is run.
Leaking pens, brushes, ... is a quick way of getting a program into
troubles - a lot more quickly than if the program leaks memory. There is
no swapping for resources.
/Per W
On Thu, 24 Oct 2002, Vlada Djurovic wrote:
>
> ----- Original Message -----
> From: "Daniel Glenfield" <sp...@ho...>
> To: <dj...@im...>; <dev...@li...>
> Sent: Thursday, October 24, 2002 11:59 AM
> Subject: Re: [Dev-C++] Whoops - drawing in Windows
>
>
> > Nope maybe not, serialising is for saving and restoring.
> >
> > I think you have to store the info in to an array, but looking at this old
> > code I cannot remember what exactly you have to do. I worked on the
> Scribble
> > tutorial that comes with VC++ - have a look on MSDN for it.
> >
> >
> I tried to store all the info in a linked list, but I think I did something
> wrong because the program just froze when I tried to draw something. Then I
> thought it would be easier to store the drawing in a compatible memory
> bitmap and then just copy it back in the client area when it needs to be
> redrawn, but this also didn't work because the program froze again. That's
> why I was asking if anyone can give me some guidelines about how to do this
> (the bitmap way).
> As for the tutorials, I read the book "Teach yourself VC++ in 21 days" which
> also has some stuff about this, but although I think I did everything the
> way it's done in VC++- it doesn't work.
>
> Regards, Vlada
> >
> > >From: "Vlada Djurovic" <dj...@im...>
> > >To: "'DevC++ help'" <dev...@li...>
> > >Subject: [Dev-C++] drawing in Windows
> > >Date: Thu, 24 Oct 2002 10:32:16 +0200
> > >
> > >Hi, everybody
> > >Here's my problem: I'm trying to write a simple drawing app (just for
> > >exercise) and so far its been going OK. I can draw lines in client area
> in
> > >different colors, but when ever I minimize or maximize the window, or
> > >something similar happenes, all the content of the window is gone. I
> tried
> > >to use a memory DC an bitmap to save the contents in, and BitBlt it back
> in
> > >response to WM_PAINT message, but the program just "froze". Can anybody
> > >give me a hint how to do it? Here's the code used for drawing lines
> without
> > >any restoring parts:
> > >
> > > case WM_MOUSEMOVE:
> > > {
> > > switch(iTool) /* iTool is used for dtetrmining
> which
> > >drawing tool is selected(line, rect etc.)*/
> > > {
> > > case 0:
> > > {
> > > if(wParam==MK_LBUTTON) /*if line is selected
> > >(itool=0) and left button presed*/
> > > {
> > > HDC hDC=GetDC(hwnd);
> > >
> > > HPEN
> hPen=CreatePen(PS_SOLID,iCurWidth,crCurColor);
> > > HPEN hOldPen=(HPEN)SelectObject(hDC,hPen);
> > > CLine* pLine=new
> > >CLine(ptPrevPos,MAKEPOINTS(lParam),iCurWidth,crCurColor); /*create new
> line
> > >object*/
> > > pLine->DrawLine(hDC);
> > > ptPrevPos=MAKEPOINTS(lParam);
> > > SelectObject(hDC,hOldPen);
> > > DeleteDC(hDC);
> > > }
> > > }
> > > break;
> > > case 1: /* nothing here yet*/
> > > break;
> > > }
> > > }
> >
> >
> > _________________________________________________________________
> > Get a speedy connection with MSN Broadband. Join now!
> > http://resourcecenter.msn.com/access/plans/freeactivation.asp
> >
>
>
>
> -------------------------------------------------------
> This sf.net email is sponsored by: Influence the future
> of Java(TM) technology. Join the Java Community
> Process(SM) (JCP(SM)) program now.
> http://ad.doubleclick.net/clk;4729346;7592162;s?http://www.sun.com/javavote
> _______________________________________________
> Dev-cpp-users mailing list
> Dev...@li...
> TO UNSUBSCRIBE: http://www.noicys.cjb.net/devcpp/ub.htm
> https://lists.sourceforge.net/lists/listinfo/dev-cpp-users
>
|