VC中文网-VC-MFC编程论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 85|回复: 0

CWnd实现拖动框,鼠标拖动时CWnd闪烁

[复制链接]

1

主题

1

帖子

4

金币

班长

Rank: 4

积分
3
发表于 2020-10-21 13:51:12 | 显示全部楼层 |阅读模式
在鼠标移动事件中改变CWnd大小,大小改变时CWnd窗口会闪烁,
重载CWnd类的OnEraseBkgnd方法返回TRUE、重载CWnd 的 OnPaint使用双缓冲不能解决问题

在  CMFCApplication1Dlg  类中声明
MyWnd    *m_pwnd;
CPoint    m_firstpos;
成员

BOOL CMFCApplication1Dlg::OnInitDialog()
{
RECT rect;
        rect.top = 0;
        rect.left = 0;
        rect.right = 1;
        rect.bottom = 1;
        m_pwnd = new CWnd;
        BOOL b = m_pwnd->Create(NULL, NULL, WS_BORDER | WS_CHILD, rect, this,  123);
        m_pwnd->SetParent(this);
        m_pwnd->SetWindowPos(&wndTopMost,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE);
}

void CMFCApplication1Dlg::OnLButtonDown(UINT nFlags, CPoint point)
{
        m_firstpos = point;
        CDialogEx::OnLButtonDown(nFlags, point);
}
void CMFCApplication1Dlg::OnMouseMove(UINT nFlags, CPoint point)
{
        RECT rc;
        rc.top = m_firstpos.y;
        rc.left = m_firstpos.x;
        rc.right = point.x - 2;
        rc.bottom = point.y -2;
        m_pwnd->MoveWindow(&rc);
        m_pwnd->Invalidate(1);
        m_pwnd->ShowWindow(SW_SHOW);

        CDialogEx::OnMouseMove(nFlags, point);
}
C VC C++ MFC 汇编 函数 脚本 辅助 多开 注入 内存 插件 破解 基址 窗口 大漠 绑定 编程 交流 论坛 实例 源码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

VC中文网 - 豫ICP备14012807号|小黑屋|联系客服|金币冲值|VC中文网

GMT+8, 2020-12-4 13:52 , Processed in 0.085938 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表