|
struct SNAPINFO
{
enum { MAXDELTA = (1<<30) };
DWORD snapWidth;
RECT rold;
RECT rnew;
RECT rdelta;
RECT rout;
void Init(RECT const & oldRect, RECT const & newRect, DWORD snapwidth);
void Init(RECT const & r, DWORD snapWidth, bool moveOnly = false);
void SnapHLine(long y); // snap to a horizontal line
void SnapVLine(long x); // snap to a vertical line
RECT & EndSnap(); // final coords in rout
};
class CMDISnapper
{
public:
protected:
DWORD m_snapWidth;
// helper for "move" coordinates
CWnd * m_wndMoving;
POINT m_mouseStart;
POINT m_rectStart;
public:
CMDISnapper(DWORD snapWidth = 8);
virtual ~CMDISnapper();
void SetSnapWidth(DWORD snapWidth);
DWORD GetSnapWidth() const { return m_snapWidth; }
LRESULT OnMessage(CWnd * wnd, UINT msg, WPARAM wp, LPARAM lp);
void Sizing(CWnd * wnd, RECT & rnew);
void OnEnterSizeMove(CWnd * wnd);
void OnExitSizeMove();
void OnSizing(CWnd * wnd, WPARAM edge, LPRECT newrect);
void OnMoving(CWnd * wnd, WPARAM edge, LPRECT newrect);
};
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
Peter is tired of being called "Mr. Chen", even so certain individuals insist on it. No, he's not chinese.
Peter has seen lots of boxes you youngsters wouldn't even accept as calculators. He is proud of having visited the insides of a 16 Bit Machine.
In his spare time he ponders new ways of turning groceries into biohazards, or tries to coax South American officials to add some stamps to his passport.
Beyond these trivialities Peter works for
Klippel[
^], a small german company that wants to make mankind happier by selling them novel loudspeaker measurement equipment.
Where are you from?[^]
Please, if you are using one of my articles for anything, just leave me a comment. Seeing that this stuff is actually useful to someone is what keeps me posting and updating them.
Should you happen to not like it, tell me, too