Qt~中这个函数 啥意思啊~感激不尽
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt~中这个函数 啥意思啊~感激不尽相关的知识,希望对你有一定的参考价值。
void DragWidget::dragEnterEvent(QDragEnterEvent *event)
//! [4] //! [5]
if (event->mimeData()->hasFormat("application/x-fridgemagnet"))
if (children().contains(event->source()))
event->setDropAction(Qt::MoveAction);
event->accept();
else
event->acceptProposedAction();
//! [5] //! [6]
//! [6] //! [7]
else if (event->mimeData()->hasText())
event->acceptProposedAction();
else
event->ignore();
vc++这个函数啥意思?
DrawDibRealize(m_hDrawDib,pDC->GetSafeHdc(),TRUE);
我注释掉就没有错误,加上就有错误,这个函数什么意思呢?
DrawDib 系列函数,是在DirectX未流行之前,MS定义的一组函数,用来高速输出图像到显卡的,不同于一般的GDI输出功能,这些函数绕过了GDI层,直接写入数据到显卡的帧缓存。
以前的视频输出游戏很多都使用的这些函数
现在不怎么用了,但windows都还支持的 参考技术A 使用DrawDibDraw是为了对图象快速操作,图象数据做为数组,图象处理直接对数组操作,不需要SetPixelV等,然后通过DrawDibDraw显示,因此其参数需要这个数组的首址,同时还需要BITMAPINFOHEADER,知道该图象多大,位深等信息。你要用这个显示HBITMAP就违反其初衷了,因为需要从HBITMAP转成图象数据:
如你上面的代码得到HBITMAP,BITMAPINFOHEADER以后,需要
COLORREF lpbuf = new COLORREF[bmp.bmWidth * bmp.bmHeight];
HDC hDC=GetDC(hWnd);
GetDIBits(hDC,hBitmap,0,bmp.bmHeight,lpbuf,pbminfo,DIB_RGB_COLORS);
ReleaseDC(hWnd,hDC);
然后把lpbuf作为参数,DrawDibDraw最后一个参数换成DDF_HALFTONE试试看。 参考技术B 32
以上是关于Qt~中这个函数 啥意思啊~感激不尽的主要内容,如果未能解决你的问题,请参考以下文章