鼠标拖拽效果 我要在视图窗口上完成一个,用鼠标对图形拖动的效果。用左键选中,拖拽它 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 自己写一个类,从CWnd继承,响应其LButtonDown,Mousemove,LButtonUp事件,即可。 void CMovingCard::OnLButtonDown(UINT nFlags, CPoint point) { if(!m_bMouseDown){ // 左键按下的标志 this->m_bMouseDown = true; // 左键按下时的鼠标位置 this->m_ptMouseOrigin = point; // 左键按下时自己的位置 this->GetWindowRect(&m_rtWndOrigin); // 将自己的位置转化为在父窗口内的客户区坐标 this->m_pParent->ScreenToClient(&m_rtWndOrigin); // 更新表示现在自己的位置的变量 m_rtWndNow m_rtWndNow = m_rtWndOrigin; // 捕获鼠标 ::SetCapture(this->m_hWnd); } CWnd::OnLButtonDown(nFlags, point);}void CMovingCard::OnMouseMove(UINT nFlags, CPoint point) { // 如果鼠标左键处于按下状态 if(m_bMouseDown){ // 计算新位置 m_rtWndNow.OffsetRect( point.x - m_ptMouseOrigin.x, point.y - m_ptMouseOrigin.y); // 移动自己 this->MoveWindow(&m_rtWndNow); } CWnd::OnMouseMove(nFlags, point);}void CMovingCard::OnLButtonUp(UINT nFlags, CPoint point) { // 如果鼠标处于按下状态 if(m_bMouseDown){ // 鼠标按下标志置成 fasle this->m_bMouseDown = false; // 释放鼠标 ::ReleaseCapture(); // 刷新一下 this->Invalidate(); } CWnd::OnLButtonUp(nFlags, point);} WebBrowser 如何实现自动上传 jQuery 一个小问题引发的大问题 0x6BA是什么异常? 使用CRgn类时出现的Debug Assertion Failed! 求助!!!!急!!!thanks!!! 高分求助:谁能帮我注释一下这一小段代码![追加50-100分] 》》》一个来自DOS时代的问题,关于游戏中的按键读取??? tfswctrl.exe是做什么用的?为何上网后关机时总出现结束任务对话框?系统xp 有图象处理经验者请进来看看~ mfc编译出来的文件不能运行! SetCapture使用的问题 求教一个算法问题,关于数字排序的。 XXX
void CMovingCard::OnLButtonDown(UINT nFlags, CPoint point)
{
if(!m_bMouseDown){
// 左键按下的标志
this->m_bMouseDown = true;
// 左键按下时的鼠标位置
this->m_ptMouseOrigin = point;
// 左键按下时自己的位置
this->GetWindowRect(&m_rtWndOrigin); // 将自己的位置转化为在父窗口内的客户区坐标
this->m_pParent->ScreenToClient(&m_rtWndOrigin);
// 更新表示现在自己的位置的变量 m_rtWndNow
m_rtWndNow = m_rtWndOrigin;
// 捕获鼠标
::SetCapture(this->m_hWnd);
}
CWnd::OnLButtonDown(nFlags, point);
}void CMovingCard::OnMouseMove(UINT nFlags, CPoint point)
{
// 如果鼠标左键处于按下状态
if(m_bMouseDown){
// 计算新位置
m_rtWndNow.OffsetRect( point.x - m_ptMouseOrigin.x,
point.y - m_ptMouseOrigin.y);
// 移动自己
this->MoveWindow(&m_rtWndNow);
}
CWnd::OnMouseMove(nFlags, point);
}void CMovingCard::OnLButtonUp(UINT nFlags, CPoint point)
{
// 如果鼠标处于按下状态
if(m_bMouseDown){
// 鼠标按下标志置成 fasle
this->m_bMouseDown = false;
// 释放鼠标
::ReleaseCapture();
// 刷新一下
this->Invalidate();
}
CWnd::OnLButtonUp(nFlags, point);
}