导航:首页 > 五金知识 > mfc工具箱拖拽

mfc工具箱拖拽

发布时间:2022-10-18 00:44:24

⑴ MFC编程中怎么找到工具箱

VC6.0还是高级版本?
工具箱只有你打开资源后才能看到的
如果还是没有的话
对于VC6.0来说,Tools-Customize-ToolBars,把Controls前面的复选框选中就OK了

⑵ vs2013中用MFC和C++创建程序后,工具箱中的控件全部显示灰色,无法拖进对话框。

我碰到过一次,具体是因为我在使用控件的时候正在运行一个程序,这样,vs你再向这个工程里添加东西是不可以的!我的就是因为这个,希望,能解决你的问题。

⑶ mfc中如何实现 鼠标拖拽图片

这个效果我刚好做过,呵呵!
首先,在View类中重载鼠标Down,Move,Up消息函数,这个没问题吧!
鼠标按下函数代码如下:
void CMy2009302590235liliView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CMy2009302590235liliDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
LPSTR lpDIB=(LPSTR)::GlobalLock(pDoc->hDIB);
LPSTR lpDIBBits;
lpDIBBits=FindDIBBits(lpDIB);
LONG Width=DIBWidth(lpDIB);
LONG Height=DIBHeight(lpDIB);//这三句是为了获得图像的高和宽,这个你可以用你自己的方法获得。
CRect rectPic;
ptput=point;
rectPic.left=0;
rectPic.right=Width;
rectPic.top=0;
rectPic.bottom=Height;
if(rectPic.PtInRect(ptput))
{
SetCapture();
}//以上的步骤是为了判断你鼠标点下的地方是否在图片区域内。这个我相信你应该看得懂
CScrollView::OnLButtonDown(nFlags, point);

}
鼠标移动,重点在这里
void CMy2009302590235liliView::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default

CScrollView::OnMouseMove(nFlags, point);
if(GetCapture())//这个if是为了判断鼠标是否在图像区域内,在的话执行下面的代码
{
CMy2009302590235liliDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);//这两行是为了获得指针pDoc,这个因该不陌生
LPSTR lpDIB=(LPSTR)::GlobalLock(pDoc->hDIB);//锁定图像
LPSTR lpDIBBits;
lpDIBBits=FindDIBBits(lpDIB);
LONG Width=DIBWidth(lpDIB);
LONG Height=DIBHeight(lpDIB);//以上是为了获得图像的高和宽
DWORD m_dwsizeImage=Width*Height;//计算大小
LPBYTE m_lpImageCopy=(BYTE*)malloc(m_dwsizeImage);//分配内存
memcpy(m_lpImageCopy,lpDIBBits,m_dwsizeImage);
DWORD wBitCount = ((LPBITMAPINFOHEADER)lpDIB)->biBitCount;//这个是获得每一个像素所占用的字节
DWORD lRowBytes=WIDTHBYTES(Width*wBitCount);
LPBYTE lpData=(LPBYTE)lpDIBBits;
LPBYTE lpOldBits=m_lpImageCopy;
CPoint m_ptmove=point;
//以下是具体算法,不做过多解释,可以直接复制粘贴
DWORD dXOffset;
DWORD dYOffset;
dXOffset=m_ptmove.x-ptput.x;
dYOffset=m_ptmove.y-ptput.y;
ptput=m_ptmove;
DWORD i;
DWORD j;
long i0=0;
long j0=0;
for(i=0;i<Height;i++)
{
for(j=0;j<Width;j++)
{
LPBYTE lpTemp=lpData+lRowBytes*(i)+(j);
i0=i+dYOffset;
j0=j-dXOffset;
if((j0>=0)&&(j0<(long)Width)&&(i0>=0)&&(i0<(long)Height))
{
*lpTemp=*(lpOldBits+lRowBytes*(i0)+(j0));
}
else
{
*lpTemp=(BYTE)255;
}
}
}

}

}
鼠标UP,这里简单的多,只要释放以下鼠标就可以了。
void CMy2009302590235liliView::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default

CScrollView::OnLButtonUp(nFlags, point);

Invalidate(FALSE);
ReleaseCapture();
}

⑷ MFC中如何能让工具栏不被拖拽

自己写个类吧

阅读全文

与mfc工具箱拖拽相关的资料

热点内容
steam令牌换设备了怎么办 浏览:246
新生测听力仪器怎么看结果 浏览:224
化学试验排水集气法的实验装置 浏览:156
家用水泵轴承位置漏水怎么回事 浏览:131
羊水镜设备多少钱一台 浏览:125
机械制图里型钢如何表示 浏览:19
测定空气中氧气含量实验装置如图所示 浏览:718
超声波换能器等级怎么分 浏览:800
3万轴承是什么意思 浏览:110
鑫旺五金制品厂 浏览:861
苏州四通阀制冷配件一般加多少 浏览:153
江北全套健身器材哪里有 浏览:106
水表阀门不开怎么办 浏览:109
花冠仪表盘怎么显示时速 浏览:106
洗砂机多少钱一台18沃力机械 浏览:489
超声波碎石用什么材料 浏览:607
组装实验室制取二氧化碳的简易装置的方法 浏览:165
怎么知道天然气充不了阀门关闭 浏览:902
公司卖旧设备挂什么科目 浏览:544
尚叶五金机电 浏览:59