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();


这是一个拖拽事件的函数,我们把文件拖拽进程序界面打开,之前必须setAcceptDrops(true)了以后拖拽,但是只设置acceptDrops还不够,还需要在dragEnterEvent事件中对拖入的对象进行筛选,判断mimeData的类型是否是你能处理的,如果是,则调用event->acceptProposedAction()放行。拖放结束后会产生dropEvent事件,在那里进行最后的放置操作。总之这是拖拽事件函数的一个筛选事件并放置的函数。 参考技术A 拖放和移动事件的处理函数。对应的是放dropEvent函数。至于怎么弄,你直接百度一下这相关函数就好了。不做多解释咯

vc++这个函数啥意思?

DrawDibRealize(m_hDrawDib,pDC->GetSafeHdc(),TRUE);

我注释掉就没有错误,加上就有错误,这个函数什么意思呢?

这个函数是 Vfw32.lib 库中的,你在工程中附加这个库文件就可以了。

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~中这个函数 啥意思啊~感激不尽的主要内容,如果未能解决你的问题,请参考以下文章

main() 主函数是啥意思啊

PHP里面include是啥意思啊

grad是啥意思啊(数学类)

qt thread普通函数是啥意思

c语言中public:是啥意思啊?

IF(1,0这个啥意思啊