Click here to Skip to main content
12,398,537 members (57,549 online)
Rate this:
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
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
CPallini 3-Jan-12 3:47am
Good solution and advice, my 5. Why don't you properly format posted code?
Rate this: bad
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().

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

  Print Answers RSS
Top Experts
Last 24hrsThis month

Advertise | Privacy | Mobile
Web02 | 2.8.160721.1 | Last Updated 3 Jan 2012
Copyright © CodeProject, 1999-2016
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