@@ -262,6 +262,11 @@ BEGIN_MESSAGE_MAP(CMUSHView, CView)
262
262
ACCELERATOR_FIRST_COMMAND + ACCELERATOR_COUNT - 1 ,
263
263
OnAcceleratorCommand)
264
264
265
+ // middle mouse button
266
+ ON_WM_MBUTTONDOWN()
267
+ ON_WM_MBUTTONUP()
268
+
269
+
265
270
END_MESSAGE_MAP()
266
271
267
272
// ///////////////////////////////////////////////////////////////////////////
@@ -2098,7 +2103,7 @@ int line,
2098
2103
dc.DPtoLP (&point);
2099
2104
2100
2105
// if click in mini-window, don't continue
2101
- if (Mouse_Down_MiniWindow (pDoc, point, 0x10 )) // LH mouse, single click
2106
+ if (Mouse_Down_MiniWindow (pDoc, point, MW_MOUSE_LH )) // LH mouse, single click
2102
2107
return ;
2103
2108
2104
2109
// check for the rectangle, now we are past the miniwindow stuff
@@ -2359,12 +2364,32 @@ ASSERT_VALID(pDoc);
2359
2364
dc.DPtoLP (&mwpoint);
2360
2365
2361
2366
// if click in mini-window, don't continue
2362
- if (Mouse_Down_MiniWindow (pDoc, mwpoint, 0x20 )) // RH mouse, single click
2367
+ if (Mouse_Down_MiniWindow (pDoc, mwpoint, MW_MOUSE_RH )) // RH mouse, single click
2363
2368
return ;
2364
2369
2365
2370
CView::OnRButtonDown (nFlags, point);
2366
2371
}
2367
2372
2373
+ void CMUSHView::OnMButtonDown (UINT nFlags, CPoint point)
2374
+ {
2375
+ CMUSHclientDoc* pDoc = GetDocument ();
2376
+ ASSERT_VALID (pDoc);
2377
+
2378
+
2379
+ // CView changes the viewport origin and mapping mode.
2380
+ // It's necessary to convert the point from device coordinates
2381
+ // to logical coordinates, such as are stored in the document.
2382
+ CPoint mwpoint = point;
2383
+ CClientDC dc (this );
2384
+ OnPrepareDC (&dc);
2385
+ dc.DPtoLP (&mwpoint);
2386
+
2387
+ // if click in mini-window, don't continue
2388
+ if (Mouse_Down_MiniWindow (pDoc, mwpoint, MW_MOUSE_MIDDLE)) // middle mouse, single click
2389
+ return ;
2390
+
2391
+ CView::OnMButtonDown (nFlags, point);
2392
+ }
2368
2393
2369
2394
void CMUSHView::OnLButtonUp (UINT nFlags, CPoint point)
2370
2395
{
@@ -2388,7 +2413,7 @@ int line,
2388
2413
2389
2414
2390
2415
// if miniwindow handles it, don't continue
2391
- if (Mouse_Up_MiniWindow (pDoc, point, 0x10 ))
2416
+ if (Mouse_Up_MiniWindow (pDoc, point, MW_MOUSE_LH ))
2392
2417
return ;
2393
2418
2394
2419
if (GetCapture () != this )
@@ -2454,13 +2479,36 @@ ASSERT_VALID(pDoc);
2454
2479
2455
2480
2456
2481
// if miniwindow handles it, don't continue
2457
- if (Mouse_Up_MiniWindow (pDoc, mwpoint, 0x20 ))
2482
+ if (Mouse_Up_MiniWindow (pDoc, mwpoint, MW_MOUSE_RH ))
2458
2483
return ;
2459
2484
2460
2485
2461
2486
CView::OnRButtonUp (nFlags, point);
2462
2487
}
2463
2488
2489
+ void CMUSHView::OnMButtonUp (UINT nFlags, CPoint point)
2490
+ {
2491
+ CMUSHclientDoc* pDoc = GetDocument ();
2492
+ ASSERT_VALID (pDoc);
2493
+
2494
+
2495
+ CClientDC dc (this );
2496
+
2497
+ // CView changes the viewport origin and mapping mode.
2498
+ // It's necessary to convert the point from device coordinates
2499
+ // to logical coordinates, such as are stored in the document.
2500
+ CPoint mwpoint = point;
2501
+ OnPrepareDC (&dc); // set up mapping mode and viewport origin
2502
+ dc.DPtoLP (&mwpoint);
2503
+
2504
+
2505
+ // if miniwindow handles it, don't continue
2506
+ if (Mouse_Up_MiniWindow (pDoc, mwpoint, MW_MOUSE_MIDDLE))
2507
+ return ;
2508
+
2509
+
2510
+ CView::OnMButtonUp (nFlags, point);
2511
+ }
2464
2512
2465
2513
2466
2514
void CMUSHView::OnMouseMove (UINT nFlags, CPoint point)
@@ -4667,7 +4715,7 @@ int line,
4667
4715
dc.DPtoLP (&point);
4668
4716
4669
4717
// if click in mini-window, don't continue
4670
- if (Mouse_Down_MiniWindow (pDoc, point, 0x50 )) // LH mouse - double click
4718
+ if (Mouse_Down_MiniWindow (pDoc, point, MW_MOUSE_LH | MW_MOUSE_DBL )) // LH mouse - double click
4671
4719
return ;
4672
4720
4673
4721
@@ -4830,7 +4878,7 @@ ASSERT_VALID(pDoc);
4830
4878
dc.DPtoLP (&mwpoint);
4831
4879
4832
4880
// if click in mini-window, don't continue
4833
- if (Mouse_Down_MiniWindow (pDoc, mwpoint, 0x60 )) // RH mouse - double click
4881
+ if (Mouse_Down_MiniWindow (pDoc, mwpoint, MW_MOUSE_RH | MW_MOUSE_DBL )) // RH mouse - double click
4834
4882
return ;
4835
4883
4836
4884
CView::OnRButtonDblClk (nFlags, point);
@@ -5081,7 +5129,7 @@ unsigned int iScrollLines;
5081
5129
5082
5130
// if over miniwindow, don't keep going
5083
5131
5084
- if (Mouse_Wheel_MiniWindow (pDoc, point, zDelta < 0 ? 0x100 : 0 ))
5132
+ if (Mouse_Wheel_MiniWindow (pDoc, point, zDelta < 0 ? MW_MOUSE_SCROLL_BACK : 0 ))
5085
5133
return 1 ;
5086
5134
5087
5135
/*
@@ -6424,13 +6472,13 @@ ASSERT_VALID(pDoc);
6424
6472
if (!dont_modify_flags)
6425
6473
{
6426
6474
if (GetKeyState (VK_SHIFT) < 0 ) // shift+click
6427
- Flags |= 1 ;
6475
+ Flags |= MW_MOUSE_SHIFT ;
6428
6476
6429
6477
if (GetKeyState (VK_CONTROL) < 0 ) // ctrl+click
6430
- Flags |= 2 ;
6478
+ Flags |= MW_MOUSE_CTRL ;
6431
6479
6432
6480
if (GetKeyState (VK_MENU) < 0 ) // alt+click
6433
- Flags |= 4 ;
6481
+ Flags |= MW_MOUSE_ALT ;
6434
6482
} // can modify flags
6435
6483
6436
6484
@@ -6784,7 +6832,7 @@ bool CMUSHView::Mouse_Move_MiniWindow (CMUSHclientDoc* pDoc, CPoint point)
6784
6832
Send_Mouse_Event_To_Plugin (pHotspot->m_dispid_MouseOver ,
6785
6833
mw->m_sCallbackPlugin ,
6786
6834
pHotspot->m_sMouseOver ,
6787
- sHotspotId , 0x80 );
6835
+ sHotspotId , MW_MOUSE_NOT_FIRST );
6788
6836
mw->m_bExecutingScript = false ;
6789
6837
}
6790
6838
@@ -6882,7 +6930,7 @@ bool CMUSHView::Mouse_Down_MiniWindow (CMUSHclientDoc* pDoc, CPoint point, long
6882
6930
// now, are we now over a hotspot?
6883
6931
if (pHotspot)
6884
6932
{
6885
- mw->m_FlagsOnMouseDown = flags & 0x70 ; // remember mouse flags
6933
+ mw->m_FlagsOnMouseDown = flags & (MW_MOUSE_LH | MW_MOUSE_RH | MW_MOUSE_DBL | MW_MOUSE_MIDDLE) ; // remember mouse flags
6886
6934
mw->m_bExecutingScript = true ;
6887
6935
Send_Mouse_Event_To_Plugin (pHotspot->m_dispid_MouseDown ,
6888
6936
mw->m_sCallbackPlugin ,
@@ -7094,7 +7142,7 @@ bool CMUSHView::Mouse_Up_MiniWindow (CMUSHclientDoc* pDoc, CPoint point, long fl
7094
7142
mw->m_sCallbackPlugin ,
7095
7143
pHotspot->m_sMouseUp ,
7096
7144
sHotspotId ,
7097
- mw->m_FlagsOnMouseDown ); // LH / RH mouse?
7145
+ mw->m_FlagsOnMouseDown ); // LH / RH / middle mouse?
7098
7146
mw->m_bExecutingScript = false ;
7099
7147
}
7100
7148
0 commit comments