Click here to Skip to main content
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 18: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
0 George Jonsson 175
1 Kornfeld Eliyahu Peter 169
2 Zoltán Zörgő 139
3 PIEBALDconsult 130
4 OriginalGriff 120
0 OriginalGriff 6,165
1 DamithSL 4,658
2 Maciej Los 4,107
3 Kornfeld Eliyahu Peter 3,649
4 Sergey Alexandrovich Kryukov 3,342


Advertise | Privacy | Mobile
Web03 | 2.8.141220.1 | Last Updated 3 Jan 2012
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