Click here to Skip to main content
15,885,546 members
Articles / Desktop Programming / MFC
Tip/Trick

Button behavior - single button multiple behaviour

Rate me:
Please Sign up or sign in to vote.
3.67/5 (2 votes)
15 May 2010CPOL 7.1K   1   1
You can use one single button for more than one behaviour.Here is how.If you have the coordinates of a point in device coordinates and want to find the corresponding position in logcal view - use CDC::DPtoLP to convert the device coordinates to logcal coordinates.Call on...
You can use one single button for more than one behaviour.

Here is how.

If you have the coordinates of a point in device coordinates
and want to find the corresponding position in logcal view -
use CDC::DPtoLP to convert the device coordinates to logcal coordinates.
Call on OnPrepareDC first to set the mapping mode and factor.


For example: Here is a WM_LEFTBUTTONDOWN handler that performs a simple hit test
to determine whether the click point lies in the upper or lower half of the logcal view.

CPoint objects passed to OnLButtonDown and other mouse message handlers
always contain device coordinates so conversion is essetial.

void CMyView::OnLButtonDown(UINT nFlags, CPoint Point)
{
  CPoint pos=Point;
  CClientDC dc (this);
  OnPrepareDC(&dc);     
  dc.DPtoLP(&pos);
  CSize size=GetTotalSize();

  if(::abs( pos.y ) < (size.cy/2) )
  {
    //Upper half was clicked
  }
   else
  {
    //lower half was clicked
  }
 

}



...

License

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


Written By
Sweden Sweden
About me:
I attended programming college and I have a degree in three most famous and successful programming languages. C/C++, Visual Basic and Java. So i know i can code. And there is a diploma hanging on my wall to prove it.
.
I am a professional, I am paid tons of cash to teach or do software development. I am roughly 30 years old .

I hold lectures in programming. I have also coached students in C++, Java and Visual basic.

In my spare time i do enjoy developing computer games, and i am developing a rather simple flight simulator game
in the c++ programming language using the openGL graphics libray.

I've written hundreds of thousands of code syntax lines for small simple applications and games.

Comments and Discussions

 
GeneralMy vote of 2 Pin
Manikandan1024-Jun-14 21:19
professionalManikandan1024-Jun-14 21:19 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.