Click here to Skip to main content
11,631,525 members (71,216 online)
Rate this: bad
good
Please Sign up or sign in to vote.
See more: C++ MFC GDI+
I have a OnRButtonDown function..and it will show a dialog box if the point fit with my nodes (X,Y in DOUBLE) in an Array...

if((post.x>=nodeX[j]-5 || post.x<=nodeX[j]+5) && (post.y>=nodeY[j]-5 || post.y<=nodeY[j]+5))

that code doesn't works, all area i click is TRUE for it...
I want when i press left button nearby the node it'll show the dialog as well...

if(post.x==nodeX[j] && post.y==nodeY[j])

Code above makes me tired to precise the pointer..
Is there any simple solution? or MFC provide a specific code for it?
Thank You
Posted 2-Jan-12 17:29pm
Rate this: bad
good
Please Sign up or sign in to vote.

Solution 1

Must be:
if( post.x >= nodeX[j]-5 && post.x <= nodeX[j]+5 && post.y >= nodeY[j]-5 && post.y <= nodeY[j]+5)


Why nodeX and nodeY - use POINT node[] or structure
Use PtInRect function
http://msdn.microsoft.com/en-us/library/dd162882(v=vs.85).aspx
  Permalink  
Comments
CPallini at 3-Jan-12 3:47am
   
Good solution and advice, my 5. Why don't you properly format posted code?
Rate this: bad
good
Please Sign up or sign in to vote.

Solution 2

Try this and think about the logical operators:
if(post.x>=nodeX[j]-5 && post.x<=nodeX[j]+5 && post.y>=nodeY[j]-5 && post.y<=nodeY[j]+5)
If you would use int vars, you may also create a CRect for your sensitive area and use CRect::PtInRect().
  Permalink  

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

  Print Answers RSS


Advertise | Privacy | Mobile
Web01 | 2.8.150723.1 | Last Updated 3 Jan 2012
Copyright © CodeProject, 1999-2015
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