Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Int main() от Июнь 15, 2013, 13:52



Название: "стеклянное" окно в qt
Отправлено: Int main() от Июнь 15, 2013, 13:52
подскажите, пожалуйста, как сделать "стеклянное" окно типа aero


Название: Re: "стеклянное" окно в qt
Отправлено: Int main() от Июнь 15, 2013, 14:00
void MainWindow::VistaGlass(int *Handle)
{
    HMODULE dwm = ::LoadLibrary (L"dwmapi.dll");
    if(dwm)
    {
        typedef HRESULT (WINAPI *pDwmExtendFrameIntoClientArea)
        (HWND, void *MARGINS);
        pDwmExtendFrameIntoClientArea procAddr = (pDwmExtendFrameIntoClientArea)::GetProcAddress(dwm,"DwmExtendFrameIntoClientArea");
        if(procAddr)
        {
            MARGINS a = {-1,0,1000,0};
            HRESULT hr = (procAddr)((HWND)Handle,&a);
        }
        ::FreeLibrary(dwm);
    }
}
вот нашел функцию


Название: Re: "стеклянное" окно в qt
Отправлено: Int main() от Июнь 15, 2013, 14:04
задаю атрибут
MainWindow::setAttribute(Qt::WA_NoSystemBackground);
вызываю функцию
VistaGlass((int*)MainWindow::winId());
но не так все гладко. Проблема в том, что когда нажимаю какую то кнопку(я делаю калькулятор), то на ней в верхнем правом и левом углах появляются какие-то точки. Короче смотрится как-то не так как бы хотелось


Название: Re: "стеклянное" окно в qt
Отправлено: Int main() от Июнь 15, 2013, 14:11
вот скрин. На кнопках плюс и минус заметны эти точки...как иправить? Или может есть какой-то другой кусок кода


Название: Re: "стеклянное" окно в qt
Отправлено: Int main() от Июнь 15, 2013, 15:46
как исправить этот глюк? Почему такого нет в нижных углах кнопки?


Название: Re: "стеклянное" окно в qt
Отправлено: Int main() от Июнь 16, 2013, 21:09
решил проблему. Надо просто
было setAttribute(Qt::WA_
NoSystemBackground) заменить на
setAttribute(Qt::WA_
TranslucentBackground) в
конструкторе