1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
#include <vcl.h>
#pragma hdrstop
#include "save_resol.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
// on rend invisible la barre de tache
HWND wd = FindWindow("Shell_TrayWnd", NULL);
ShowWindow(wd, 0);
// acquisition resolution
Width = Screen->Width;
Height = Screen->Height;
// on sauve la resolution
save_reso_width = Width;
save_reso_height = Height;
// on teste la resolution
// si elle est differente de 800*600
// alors on change la resolution
if(Width != 800 && Height != 600)
{
TDeviceMode *Dev = new TDeviceMode;
EnumDisplaySettings(0, ENUM_CURRENT_SETTINGS, Dev);
Dev->dmPelsWidth = 800;
Dev->dmPelsHeight = 600;
Dev->dmFields = DM_PELSWIDTH | DM_PELSHEIGHT;
bool result = (ChangeDisplaySettings(Dev, CDS_RESET) == DISP_CHANGE_SUCCESSFUL);
delete Dev;
// result n'est pas utilise pour l'instant
//return result;
}
// on positionne la forme en haut a gauche
HWND hwnd = GetForegroundWindow();
//MoveWindow(hwnd, 0, 0, 800, 600, 1);
SetWindowPos(hwnd, HWND_TOP, 0, 0, 800, 600, SWP_DRAWFRAME);
// on efface la barre de titre ainsi que
// minimise, resize, et croix fermeture
// la barre de titre doit etre effacee apres le
// positionnement sinon la fonction SetWindowPos
// est sans effet quand au positionnement en
// haut a gauche
Form1->BorderStyle = bsNone;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
// on teste la resolution
// si elle est differente de la sauvegarde
// alors on change la resolution
Width = Screen->Width;
Height = Screen->Height;
if(Width != save_reso_width && Height != save_reso_height)
{
TDeviceMode *Dev = new TDeviceMode;
EnumDisplaySettings(0, ENUM_CURRENT_SETTINGS, Dev);
Dev->dmPelsWidth = save_reso_width;
Dev->dmPelsHeight = save_reso_height;
Dev->dmFields = DM_PELSWIDTH | DM_PELSHEIGHT;
bool result = (ChangeDisplaySettings(Dev, CDS_RESET) == DISP_CHANGE_SUCCESSFUL);
delete Dev;
// result n'est pas utilise pour l'instant
//return result;
}
// on rend visible la barre de tache
HWND wd = FindWindow("Shell_TrayWnd", NULL);
ShowWindow(wd, 8);
// on termine le programme
Application->Terminate();
} |
Partager