本文整理汇总了C++中CDXUTDialog::GetLocation方法的典型用法代码示例。如果您正苦于以下问题:C++ CDXUTDialog::GetLocation方法的具体用法?C++ CDXUTDialog::GetLocation怎么用?C++ CDXUTDialog::GetLocation使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CDXUTDialog
的用法示例。
在下文中一共展示了CDXUTDialog::GetLocation方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OnMouse
void CALLBACK OnMouse( bool bLeftButtonDown, bool bRightButtonDown, bool bMiddleButtonDown, bool bSideButton1Down,
bool bSideButton2Down, int nMouseWheelDelta, int xPos, int yPos, void* pUserContext )
{
if (!gDragging_out && gDragging && bLeftButtonDown)
{
int delta_xPos = xPos-gLast_xPos;
int delta_yPos = yPos-gLast_yPos;
gViewTranslationX += delta_xPos;
gViewTranslationY += delta_yPos;
}
if (nMouseWheelDelta)
{
float halfWidth = gSurfaceWidth / 2.0f;
float halfHeight = gSurfaceHeight / 2.0f;
int oldzoom = gViewZoomStep;
gViewZoomStep += nMouseWheelDelta;
float old_scale = powf(2.0, oldzoom/300.0f);
float new_scale = powf(2.0, gViewZoomStep/300.0f);
float vx = gViewTranslationX-(xPos-halfWidth);
float vy = gViewTranslationY-(yPos-halfHeight);
vx *= new_scale/old_scale;
vy *= new_scale/old_scale;
gViewTranslationX = int(vx+xPos-halfWidth);
gViewTranslationY = int(vy+yPos-halfHeight);
}
POINT base, pt = {xPos, yPos};
gSampleUI.GetLocation(base);
pt.x -= base.x;
pt.y -= base.y;
CDXUTControl* ctrl = gSampleUI.GetControlAtPoint(pt);
if (!gDragging)
{
gDragging_out = !!ctrl && bLeftButtonDown;
}
gDragging = bLeftButtonDown;
gLast_xPos = xPos;
gLast_yPos = yPos;
}