Re: Mouse movement within CStatic/Picture box
- From: "Scott McPhillips [MVP]" <org-dot-mvps-at-scottmcp>
- Date: Wed, 13 Jun 2007 09:37:03 -0400
MD wrote:
Thanks Scott, Tom , Alir, Arman:
Like I told I am just a beginner in MFC programming. I started on a
wrong foot with handling ON_STN_CLICKED. Thats the event for clicking
on Static controls within a dialog.
But I was able to work this out using Alir's method.Now I am able to
draw a rectangle on picture box using the following code, now the
problem is as I move the mouse there will be a track of rectangles
over the picture box, I was wondering if you guys can suggest a method
where I can refresh the picture box or reset the previous rectangle,
so that as I drag only one final rectangle remains .
void CPictureBox::OnPaint()
{
CPaintDC pDC(this); // device context for painting
RECT rect;
GetClientRect(&rect);
if(m_Tracking==TRUE)
{
pDC.SelectStockObject(HOLLOW_BRUSH);
pDC.Rectangle(m_Rect); //rectangle
coordinates captured in mousedown/up and move events
}
else
if(m_sBitmap!="")
ShowBitmap(&pDC);
}
Thanks for the help,
OnPaint must paint the entire picture box, not just add to it. The reason is that the image on a window can be destroyed by other popup windows, and Windows calls OnPaint when you need to fix it. So you should make it always paint the bitmap and then optionally add the tracking rect. In fact, if you don't currently have a bitmap you should draw a blank background rect to "fix" an empty box. Otherwise an image of the other popup window will remain.
By the way, if(m_Tracking==TRUE) is very poor style and error-prone: Use
if (m_Tracking)
....
--
Scott McPhillips [MVP VC++]
.
- Follow-Ups:
- References:
- Mouse movement within CStatic/Picture box
- From: MD
- Re: Mouse movement within CStatic/Picture box
- From: AliR \(VC++ MVP\)
- Re: Mouse movement within CStatic/Picture box
- From: MD
- Mouse movement within CStatic/Picture box
- Prev by Date: Re: OpenPrinter() fails with ERROR_ACCESS_DENIED with PRINTER_ALL_ACCESS rights.
- Next by Date: Simple CDialog trouble
- Previous by thread: Re: Mouse movement within CStatic/Picture box
- Next by thread: Re: Mouse movement within CStatic/Picture box
- Index(es):
Relevant Pages
|