Russian Qt Forum
Сентябрь 30, 2024, 16:34 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Востановление экрана после смены разрешения  (Прочитано 4875 раз)
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();
}

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

Записан
zenden
Гость
« Ответ #1 : Март 03, 2010, 18:59 »

Так это нормальное поведение  Подмигивающий
Записан
admsasha
Гость
« Ответ #2 : Март 04, 2010, 03:47 »

Так это нормальное поведение  Подмигивающий
Я догадался, что это нормальное поведение. Вопрос, как сделать правильную смену разрешения ? Чтобы избежать такого эфекта.
Записан
kirill
Гость
« Ответ #3 : Март 04, 2010, 06:23 »

Запомнить размеры окон и восстанавить их после смены?
Записан
admsasha
Гость
« Ответ #4 : Март 04, 2010, 07:09 »

Запомнить размеры окон и восстанавить их после смены?
Это ответ на какой вопрос ?
Записан
Xopxe
Гость
« Ответ #5 : Сентябрь 24, 2010, 23:13 »

Может уже и не надо, но дам ответ, может кому пригодится
ChangeDisplaySettings(&dm,CDS_UPDATEREGISTRY)
заменить на
ChangeDisplaySettings(&dm,CDS_FULLSCREEN)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.045 секунд. Запросов: 21.