Re: [Dev-C++] Whoops - drawing in Windows
Open Source C & C++ IDE for Windows
Brought to you by:
claplace
|
From: Vlada D. <dj...@im...> - 2002-10-24 12:01:07
|
----- 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
>
|