Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: admsasha от Март 03, 2010, 17:21



Название: Востановление экрана после смены разрешения
Отправлено: admsasha от Март 03, 2010, 17:21
Нужно при загрузки программы менять разрешение экрана, а при выходе менять на пользовательское.

Вот как пытался сделать (чтобы меньше писать, считаю, что пользовательское разрешение это 1024x768)

Код:
#include "frmMenu.h"
#include "windows.h"
#include <QPushButton>

frmMenu::frmMenu(){

DEVMODE dm;
memset(&dm,0,sizeof(DEVMODE));
dm.dmSize=sizeof(DEVMODE);
dm.dmPelsWidth=800;
dm.dmPelsHeight=600;
dm.dmFields=DM_BITSPERPEL|DM_PELSWIDTH|DM_PELSHEIGHT|DM_DISPLAYFREQUENCY;
ChangeDisplaySettings(&dm,CDS_UPDATEREGISTRY);


    this->setWindowFlags(Qt::FramelessWindowHint);
    this->setWindowState(Qt::WindowFullScreen|Qt::WindowMaximized);
   

    QPushButton *pushButton = new QPushButton(tr("exit"),this);
    pushButton->move(100,100);

    connect(pushButton,SIGNAL(clicked()),this,SLOT(myExit()));

}

void frmMenu::myExit(){

DEVMODE dm;
memset(&dm,0,sizeof(DEVMODE));
dm.dmSize=sizeof(DEVMODE);
dm.dmPelsWidth=1024;
dm.dmPelsHeight=768;
dm.dmFields=DM_BITSPERPEL|DM_PELSWIDTH|DM_PELSHEIGHT|DM_DISPLAYFREQUENCY;
ChangeDisplaySettings(&dm,CDS_UPDATEREGISTRY);

close();
}

При загрузки, разрешение меняется и при выходе восстанавливается. Но все окна (проводник, браузер и т.д.) которые были на рабочем столе сузились или сдвинулись. Как сделать правильную смену экрана во время работы своего приложения ?



Название: Re: Востановление экрана после смены разрешения
Отправлено: zenden от Март 03, 2010, 18:59
Так это нормальное поведение  ;)


Название: Re: Востановление экрана после смены разрешения
Отправлено: admsasha от Март 04, 2010, 03:47
Так это нормальное поведение  ;)
Я догадался, что это нормальное поведение. Вопрос, как сделать правильную смену разрешения ? Чтобы избежать такого эфекта.


Название: Re: Востановление экрана после смены разрешения
Отправлено: kirill от Март 04, 2010, 06:23
Запомнить размеры окон и восстанавить их после смены?


Название: Re: Востановление экрана после смены разрешения
Отправлено: admsasha от Март 04, 2010, 07:09
Запомнить размеры окон и восстанавить их после смены?
Это ответ на какой вопрос ?


Название: Re: Востановление экрана после смены разрешения
Отправлено: Xopxe от Сентябрь 24, 2010, 23:13
Может уже и не надо, но дам ответ, может кому пригодится
ChangeDisplaySettings(&dm,CDS_UPDATEREGISTRY)
заменить на
ChangeDisplaySettings(&dm,CDS_FULLSCREEN)