Esempio n. 1
0
bool MainWindow::winEvent(MSG * message, long * result)
{
    switch (message->message)
    {
    case WM_DWMSENDICONICTHUMBNAIL: {
            HBITMAP hbitmap = m_thumbnail.toWinHBITMAP();
            DwmSetIconicThumbnail(this->winId(), hbitmap, 0);

            if (hbitmap) DeleteObject(hbitmap);
        }
        break;

    case WM_DWMSENDICONICLIVEPREVIEWBITMAP: {
            HBITMAP hbitmap = QPixmap::grabWidget(this).scaled(this->size(), Qt::KeepAspectRatio).toWinHBITMAP();

            DwmSetIconicLivePreviewBitmap(this->winId(), hbitmap, 0, 0);
            if (hbitmap) DeleteObject(hbitmap);
        }
        break;
    default:
        return false;
    }


    return false;
}
Esempio n. 2
0
void TaskbarWnd::sendLivePreviewBitmap( )
{
	RECT r;
	::GetWindowRect( mol::win::mdiClient(), &r );

	RECT wr;
	::GetWindowRect( tb_->parent(), &wr );

	POINT ptOffset = { r.left-wr.left, r.top-wr.top };

	HRESULT hr = DwmSetIconicLivePreviewBitmap( *this, hbm_cached_, &ptOffset, 1);
}
void IntegratedMainWindow::sendPreviewInternal()
{
    QPixmap pix = sendPreview();
    if (!pix.isNull())
    {
        HBITMAP hBitmap = pix.toWinHBITMAP();
        DwmSetIconicLivePreviewBitmap(winId(), hBitmap, 0, d->m_windowFrameForIconicThumbnails ? DWM_SIT_DISPLAYFRAME : 0);
        if (hBitmap)
        {
            DeleteObject(hBitmap);
        }
    }
}