类似于“this”的子窗口的东西

卡尔EL

我是编程的新手。我正在编写一个基于对话框的应用程序,它有一个静态控件。使用

Using
void CMy1stDlg::OnMouseMove(UINT nFlags, CPoint point)
{
    if (this == GetCapture())
    {
        CClientDC aDC(this);
        aDC.SetPixel(point, RGB(255,0,0));
    }   
}

我可以创建类似的结果 在此处输入图片说明

但是我想要的是鼠标的轨迹只在静态窗口内绘制。this在 MSDN 中找不到引用,我不知道为什么下面的方法失败了。

void CMy1stDlg::OnMouseMove(UINT nFlags, CPoint point)
{
    CWnd* pMYSTATIC = GetDlgItem (IDC_MYSTATIC);    //IDC_MYSTATIC is the ID of the static control
    if (pMYSTATIC == GetCapture())
    {
        CClientDC aDC(pMYSTATIC);
        aDC.SetPixel(point, RGB(255,0,0));
    }   
}

我怎样才能得到我想要的?是否有任何方法可以为类似于 的静态窗口获取某些东西this我将不胜感激。

康斯坦丁·乔治欧

好的,试试这个:

void CMy1stDlg::OnMouseMove(UINT nFlags, CPoint point)
{
    CRect rect;
    // Get static control's rectangle
    GetDlgItem(IDC_MYSTATIC)->GetWindowRect(&rect);
    // Convert it to client coordinates
    ScreenToClient(&rect);
    // Check if mouse pointer is inside the static window, if so draw the pixel
    if (rect.PtInRect(point))
    {
        CClientDC dc(this);
        dc.SetPixel(point.x, point.y, RGB(255,0,0));
    }
}

在检查是否绘制像素之前,此代码可能也需要一些修复,例如缩小矩形(到其仅客户端区域)。

请注意,您不需要检查GetCapture()如果您的对话框没有捕获鼠标,它无论如何都不会收到此消息。

此外,所有这些功能都是 Windows SDK 的包装器,例如ClientDC()类,基本上包装GetDC()/ ReleaseDC()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

类似于通知中心的东西吗?

如何实现类似于“truncateat”的东西?

Ruby是否有类似于。=的东西,例如+ =?

尝试实现类似于 jQuery 的东西

是否有类似于`delete-other-windows`(`Cx 1`)的东西,但是这使我可以恢复窗口的布置

Django中是否有类似于“耙路”的东西?

在Java中是否有类似于strip_tags的东西?

在golang中是否有类似于sql.NullJson的东西?

我可以在symfony中创建类似于isGranted的东西吗?

JUnit 3是否有类似于@BeforeClass的东西?

在Scala中类似于Groovy的“ Power assert”之类的东西吗?

Java中是否有类似于instanceOf(Class <?> c)的东西?

是否有类似于Java的mini-mvc-profiler的东西?

java是否具有类似于C#属性的东西?

是否有类似于$ scope。$ watch的NSMutableArray之类的东西

Elixir中是否有类似于ruby send方法的东西?

是否有类似于ramda.js的lodash _.toArray的东西?

在Haskell中,有类似于后卫的东西吗?

是否有类似于Android中的stringByAppendingPathComponent的东西?

React 是否有类似于 Angular 的 *ngIf 的东西?

IronPython 中是否有类似于 ENUM 的东西

是否有一些类似于JavaScript .querySelectorAll()的东西?

是否有类似于 xamarin 形式的 Unity void Update() 的东西?

Firefox:类似于Chrome扩展程序窗口的窗口

创建类似于iOS子视图的Android子视图

如何通过(类似于窗口的功能)进行特定分组

xubuntu中是否有类似于窗口概述的曝光功能?

类似于Facebook的“参加旅行”样式的气球弹出窗口?

Python子图中的范围类似于MATLAB的stackedplot()