本文整理汇总了C++中HasCapture函数的典型用法代码示例。如果您正苦于以下问题:C++ HasCapture函数的具体用法?C++ HasCapture怎么用?C++ HasCapture使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了HasCapture函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: CaptureMouse
void CFCEditorGLWindow::OnMouse(wxMouseEvent& event)
{
if(event.ButtonDown(wxMOUSE_BTN_RIGHT))
{
if (!HasCapture())
{
CaptureMouse();
}
HideCursor();
SetFocus();//Call this for catch the EVT_MOUSEWHEEL event, in left mouse button down event is not necessary to call this
m_startPosition = event.GetPosition();
m_bRightDown = true;
}
else if(event.ButtonUp(wxMOUSE_BTN_RIGHT))
{
if (!m_bLeftDown && HasCapture())
{
ReleaseMouse();
}
ShowCursor();
m_bRightDown = false;
}
else if(event.ButtonDown(wxMOUSE_BTN_LEFT))
{
if (!HasCapture())
{
CaptureMouse();
}
HideCursor();
m_startPosition = event.GetPosition();
m_bLeftDown = true;
}
else if(event.ButtonUp(wxMOUSE_BTN_LEFT))
{
if (!m_bRightDown && HasCapture())
{
ReleaseMouse();
}
ShowCursor();
m_bLeftDown = false;
}
else if(event.Dragging())
{
if (m_bRightDown || m_bLeftDown)
{
wxPoint curPos = event.GetPosition();
wxPoint pnt = ClientToScreen(m_startPosition);
SetCursorPos(pnt.x, pnt.y);
if (m_bRightDown)
{
int nDeltaX = curPos.x - m_startPosition.x;
int nDeltaY = curPos.y - m_startPosition.y;
wxSize clientSize = GetClientSize();
m_pCamera->Yaw((float)nDeltaX / clientSize.x);
m_pCamera->Pitch((float)nDeltaY / clientSize.y);
}
}
}
event.Skip();
}
开发者ID:nobitalwm,项目名称:FCEngine,代码行数:60,代码来源:FCEditorGLWindow.cpp
示例2: switch
Image RichEdit::CursorImage(Point p, dword flags)
{
if(tablesel)
return Image::Arrow();
switch(GetHotSpot(p)) {
case 0:
return Image::SizeBottomRight();
case 1:
return Image::SizeVert();
case 2:
return Image::SizeHorz();
default:
if(text.GetRichPos(GetMousePos(p)).object) {
return Image::Arrow();
}
else
if(HasCapture() && tabmove.table && tabmove.column >= -2)
return Image::SizeHorz();
else {
RichHotPos hp = GetHotPos(p);
if(hp.table > 0)
return Image::SizeHorz();
else {
int c = GetMousePos(p);
return InSelection(c) && !HasCapture() ? Image::Arrow() : Image::IBeam();
}
}
}
return Image::Arrow();
}
开发者ID:dreamsxin,项目名称:ultimatepp,代码行数:31,代码来源:Mouse.cpp
示例3: OnMotion
void OnMotion( wxMouseEvent & event )
{
// Don't do anything if we're docked or not resizeable
if( mBar->IsDocked() || !mBar->IsResizable() )
{
return;
}
// Retrieve the mouse position
wxPoint pos = ClientToScreen( event.GetPosition() );
if( HasCapture() && event.Dragging() )
{
wxRect rect = GetRect();
rect.SetBottomRight( pos );
if( rect.width < mMinSize.x )
{
rect.width = mMinSize.x;
}
if( rect.height < mMinSize.y )
{
rect.height = mMinSize.y;
}
SetMinSize( rect.GetSize() );
SetSize( rect.GetSize() );
Layout();
Refresh( false );
}
else if( HasCapture() && event.LeftUp() )
{
ReleaseMouse();
}
else if( !HasCapture() )
{
wxRect rect = GetRect();
wxRect r;
r.x = rect.GetRight() - sizerW - 2,
r.y = rect.GetBottom() - sizerW - 2;
r.width = sizerW + 2;
r.height = sizerW + 2;
// Is left click within resize grabber?
if( r.Contains( pos ) && !event.Leaving() )
{
SetCursor( wxCURSOR_SIZENWSE );
if( event.LeftDown() )
{
CaptureMouse();
}
}
else
{
SetCursor( wxCURSOR_ARROW );
}
}
}
开发者ID:GYGit,项目名称:Audacity,代码行数:59,代码来源:ToolManager.cpp
示例4: GetMousePos
void LineEdit::MouseMove(Point p, dword flags) {
if((flags & K_MOUSELEFT) && HasFocus() && HasCapture()) {
int c = GetMousePos(p);
dorectsel = flags & K_ALT;
PlaceCaret(c, mpos != c || HasCapture());
dorectsel = false;
}
}
开发者ID:AbdelghaniDr,项目名称:mirror,代码行数:8,代码来源:LineEdit.cpp
示例5: CaptureMouse
void AudioDisplay::SetDraggedObject(AudioDisplayInteractionObject *new_obj)
{
dragged_object = new_obj;
if (dragged_object && !HasCapture())
CaptureMouse();
else if (!dragged_object && HasCapture())
ReleaseMouse();
if (!dragged_object)
audio_marker.reset();
}
开发者ID:Gpower2,项目名称:Aegisub,代码行数:12,代码来源:audio_display.cpp
示例6: Refresh
void IconDes::LeftUp(Point p, dword keyflags)
{
if(!IsCurrent())
return;
if(IsPasting() && HasCapture())
Refresh();
else
if(HasCapture() && selectrect)
Move();
else
Current().base_image.Clear();
SetBar();
SyncShow();
}
开发者ID:AbdelghaniDr,项目名称:mirror,代码行数:14,代码来源:Event.cpp
示例7: GetClientSize
void wxSkinSlider::OnMouseMotion(wxMouseEvent& event)
{
wxPoint pt = event.GetPosition();
if( HasCapture() && event.Dragging())
{
m_bOver = true;
int w,h;
GetClientSize(&w,&h);
int scale;
if (m_isvertical)
{
scale = (int)(((float)m_maxvalue/(float)h)*pt.y);
}
else
{
scale = (int)(((float)m_maxvalue/(float)w)*pt.x);
}
if(scale > m_maxvalue)
scale = m_maxvalue;
if(scale < 0)
scale = 0;
m_currentvalue = scale;
wxCommandEvent evt(wxEVT_COMMAND_SLIDER_UPDATED,GetId());
evt.SetInt(m_currentvalue);
evt.SetEventObject(this);
GetEventHandler()->ProcessEvent(evt);
}
#if wxCHECK_VERSION(2, 7, 0)
else if(m_sliderRect.Contains(pt))
#else
else if(m_sliderRect.Inside(pt))
#endif
{ m_bOver = true;
CaptureMouse();
}
else
{ m_bOver = false;
if(HasCapture())
ReleaseMouse();
}
Refresh();
}
开发者ID:EEmmanuel7,项目名称:wxskintoy,代码行数:49,代码来源:wxSkinSlider.cpp
示例8: OnIdle
void wxJigsawEditorCanvas::OnIdle( wxIdleEvent& event )
{
do
{
if(!HasCapture()) break;
// get mouse in client coordinates
wxPoint currentPos = ScreenToClient(wxGetMousePosition());
//Update the offset to the next mouse down event
if(m_View->GetSelectedObject())
{
wxPoint diagramPoint = PointToViewPoint(currentPos);
wxPoint groupPosition = m_View->GetRealGroupPosition(m_View->GetSelectedObject());
m_SelectedObjectOffset = wxSize(
diagramPoint.x - groupPosition.x,
diagramPoint.y - groupPosition.y);
}
// get scroll position
wxPoint scrollPos = GetScrollPosition();
// auto scroll
// check current drag position and update scroll regularly
if(AutoScroll(currentPos, scrollPos))
{
event.RequestMore();
}
FixViewOffset();
}
while(false);
}
开发者ID:cubemoon,项目名称:game-editor,代码行数:33,代码来源:wxJigsawEditorCanvas.cpp
示例9: OnCaptureLost
void ToolBar::OnCaptureLost( wxMouseCaptureLostEvent & event )
{
if( HasCapture() )
{
ReleaseMouse();
}
}
开发者ID:ruthmagnus,项目名称:audacity,代码行数:7,代码来源:ToolBar.cpp
示例10:
MainMenuButton::~MainMenuButton()
{
if (HasCapture())
ReleaseMouse();
safe_delete(m_mainMenu);
}
开发者ID:boskee,项目名称:Desurium-1,代码行数:7,代码来源:MainMenuButton.cpp
示例11: WXUNUSED
void ToolBarResizer::OnCaptureLost( wxMouseCaptureLostEvent & WXUNUSED(event) )
{
if( HasCapture() )
{
ReleaseMouse();
}
}
开发者ID:jengelh,项目名称:audacity,代码行数:7,代码来源:ToolBar.cpp
示例12: OnCaptureLost
void OnCaptureLost( wxMouseCaptureLostEvent & WXUNUSED(event) )
{
if( HasCapture() )
{
ReleaseMouse();
}
}
开发者ID:GYGit,项目名称:Audacity,代码行数:7,代码来源:ToolManager.cpp
示例13: SetFocus
void ActorSceneCanvas::OnLeftDown(wxMouseEvent& e)
{
SetFocus();
mDragStarted = true;
mDragOrigin = Ogre::Vector2(e.GetX(),e.GetY());
mDragDelta = Ogre::Vector2(0.0f,0.0f);
if (!GetSceneManipulator())
return;
if (HasCapture())
return;
wxASSERT(!m_pCameraManip);
wxASSERT(mDragButton == wxMOUSE_BTN_NONE);
if (!GetActiveAction())
return;
//GetSceneManipulator()->setActiveAction("ManipObjectAction");
//GetActiveAction()->setParameter("%CurrentMode", "");
m_pUpdateListener->enable();
mDragButton = e.GetButton();
GetActiveAction()->onBegin(e.GetX(), e.GetY());
CaptureMouse();
}
开发者ID:jjiezheng,项目名称:pap_full,代码行数:30,代码来源:WXSceneCanvas.cpp
示例14: On_Mouse_LUp
//---------------------------------------------------------
void CPoints_View_Extent::On_Mouse_LUp(wxMouseEvent &event)
{
if( HasCapture() )
{
ReleaseMouse();
}
_Draw_Inverse(m_Mouse_Down, m_Mouse_Move);
wxPoint p;
p.x = event.GetX() < 0 ? 0 : event.GetX() >= GetClientSize().x ? GetClientSize().x - 1 : event.GetX();
p.y = event.GetY() < 0 ? 0 : event.GetY() >= GetClientSize().y ? GetClientSize().y - 1 : event.GetY();
if( m_Mouse_Down.x != p.x || m_Mouse_Down.y != p.y )
{
m_Select = wxRect(wxPoint(m_Mouse_Down.x, m_Mouse_Down.y), p);
}
else
{
m_Select.SetX(p.x - m_Select.GetWidth () / 2);
m_Select.SetY(p.y - m_Select.GetHeight() / 2);
}
Refresh(false);
((CPoints_View_Dialog *)GetParent())->Update_Extent();
}
开发者ID:Fooway,项目名称:SAGA-GIS-git-mirror,代码行数:29,代码来源:points_view_extent.cpp
示例15: On_Mouse_MUp
//---------------------------------------------------------
void CVIEW_Map_Control::On_Mouse_MUp(wxMouseEvent &event)
{
if( HasCapture() )
{
ReleaseMouse();
}
_Draw_Inverse(m_Mouse_Down, event.GetPosition());
m_Drag_Mode = TOOL_INTERACTIVE_DRAG_NONE;
switch( m_Mode )
{
//-----------------------------------------------------
case MAP_MODE_SELECT:
break;
//-----------------------------------------------------
case MAP_MODE_DISTANCE:
break;
//-----------------------------------------------------
case MAP_MODE_ZOOM:
break;
//-----------------------------------------------------
case MAP_MODE_PAN:
break;
//-----------------------------------------------------
case MAP_MODE_PAN_DOWN:
Set_Mode(MAP_MODE_ZOOM);
_Move(m_Mouse_Down, event.GetPosition());
break;
}
}
开发者ID:johanvdw,项目名称:SAGA-GIS-git-mirror,代码行数:36,代码来源:view_map_control.cpp
示例16: LeftRepeat
void LineEdit::LeftRepeat(Point p, dword flags) {
if(HasCapture()) {
int c = GetMousePos(p);
if(mpos != c)
PlaceCaret(c, true);
}
}
开发者ID:pedia,项目名称:raidget,代码行数:7,代码来源:LineEdit.cpp
示例17: WXUNUSED
void wxSkinWindow::OnLeaveWindow(wxMouseEvent& WXUNUSED(event))
{
m_bInside = false;
if(HasCapture())
ReleaseMouse();
Refresh();
}
开发者ID:EEmmanuel7,项目名称:wxskintoy,代码行数:7,代码来源:wxSkinWindow.cpp
示例18: OnMouseMove
void SongCanvas::OnMouseMove(wxMouseEvent& event) {
if (!event.m_leftDown || !HasCapture()) {
event.Skip();
return;
}
/*
int w, h;
GetClientSize(&w, &h);
float x1 = (float) event.m_x / (float) w;
float y1 = (float) event.m_y / (float) h;
int x = x1 * 16;
int y = 15 - (int)(y1 * 16);
if (x < 0) x = 0;
if (x > 15) x = 15;
if (y < 0) y = 0;
if (y > 15) y = 15;
tonematrix[x][y] = fill;
Refresh();
*/
//event.Skip();
}
开发者ID:sanyaade-g2g-repos,项目名称:nuzynth,代码行数:26,代码来源:SongCanvas.cpp
示例19: if
//---------------------------------------------------------
void CVIEW_Map_3D::On_Mouse_Motion(wxMouseEvent &event)
{
if( HasCapture() && event.Dragging() )
{
if( event.LeftIsDown() )
{
m_pImage->m_zRotate = m_xDown - GET_MOUSE_X_RELDIFF * M_PI_180;
m_pImage->m_xRotate = m_yDown - GET_MOUSE_Y_RELDIFF * M_PI_180;
_Parms_Changed();
}
else if( event.RightIsDown() )
{
m_pImage->m_xShift = m_xDown - GET_MOUSE_X_RELDIFF * 100.0;
m_pImage->m_yShift = m_yDown + GET_MOUSE_Y_RELDIFF * 100.0;
_Parms_Changed();
}
else if( event.MiddleIsDown() )
{
m_pImage->m_yRotate = m_xDown + GET_MOUSE_X_RELDIFF * M_PI_180;
m_pImage->m_zShift = m_yDown + GET_MOUSE_Y_RELDIFF * 100.0;
_Parms_Changed();
}
}
}
开发者ID:am2222,项目名称:SAGA-GIS,代码行数:28,代码来源:view_map_3d.cpp
示例20: MouseMove
void ScrollBar::MouseMove(Point p, dword) {
if(HasCapture() && push == 2)
Drag(p);
else
if(light != GetMousePart())
Refresh();
}
开发者ID:pedia,项目名称:raidget,代码行数:7,代码来源:ScrollBar.cpp
注:本文中的HasCapture函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论