Click here to Skip to main content
15,881,559 members
Please Sign up or sign in to vote.
2.00/5 (1 vote)
See more:
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...

C++
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...

C++
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

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
 
Share this answer
 
Comments
CPallini 3-Jan-12 3:47am    
Good solution and advice, my 5. Why don't you properly format posted code?
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().
 
Share this answer
 

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



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900