首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

VisualEleven您好,你在吗

2013-04-21 
VisualEleven你好,你在吗?我想实现一个拖动按钮的功能,拖动按钮,按钮跟着跑。于是参考了你的代码:这是版主

VisualEleven你好,你在吗?

我想实现一个拖动按钮的功能,拖动按钮,按钮跟着跑。于是参考了你的代码:

这是版主的代码:
http://blog.csdn.net/visualeleven/article/details/7177775




我的绘制效果巨烂无比。 拖动过程中有时候会"看不到按钮",甚至会影响到对话框的关闭。
怎么这么奇怪,我的代码和版主你的原理差不多啊。




我模仿的代码:
CMyButton::CMyButton()
{
bDraged=FALSE;
}

CMyButton::~CMyButton()
{
}


BEGIN_MESSAGE_MAP(CMyButton, CButton)
ON_WM_LBUTTONDOWN()
ON_WM_LBUTTONUP()
ON_WM_MOUSEMOVE()
END_MESSAGE_MAP()



// CMyButton 消息处理程序



void CMyButton::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值

bDraged=TRUE;
//PostMessage(WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM(point.x, point.y));
m_pt=point;
CButton::OnLButtonDown(nFlags, point);
}

void CMyButton::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
bDraged=FALSE;

}

void CMyButton::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值

if(bDraged)//move
{
int nCX=point.x-m_pt.x;
int nCY=point.y-m_pt.y;
CRectrect;
int nWidth,nHeight;
nWidth=nHeight=0;
GetWindowRect(&rect);
CWnd* pParent=GetParent();
ASSERT(pParent);
pParent->ScreenToClient(&rect);
nWidth=rect.Width();
nHeight=rect.Height();
rect.left+=nCX;
rect.top+=nCY;
rect.right=rect.left+nWidth;
rect.bottom=rect.top+nHeight;
MoveWindow(&rect);
m_pt=point;
}
CButton::OnMouseMove(nFlags, point);
}


效果差,居然会影响到关闭对话框,我就郁闷


[解决办法]
eleven兄头像那个孩子到底是男孩还是女孩,还是有龙凤胎?
[解决办法]

没用过!

热点排行