导航:首页 > 五金知识 > 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工具箱拖拽相关的资料

热点内容
广西五金批发市场在哪里 浏览:166
盘锦市五金机电市场 浏览:516
迈锐宝xl仪表代表什么 浏览:90
开图文社都需要什么设备 浏览:447
表前阀门怎么打开 浏览:326
防雷装置中的接地装置作用是什么 浏览:211
阀门上r代表什么意思 浏览:953
智能仪表销售怎么样 浏览:500
伸缩装置机械动图 浏览:717
所示装置是实验室用轻绳 浏览:233
刚开始卖阀门需要了解什么 浏览:29
智跑换仪表盘多少钱 浏览:35
分度线用什么仪表 浏览:421
买些什么器材可以练臂力 浏览:537
实验装置排序问题 浏览:724
挖孔桩机械多少钱1米 浏览:426
沈阳机床重量怎么样 浏览:772
新上铸造厂怎么样 浏览:308
现在家里一般是什么水电阀门 浏览:937
老房子暖气阀门在顶楼吗 浏览:139