IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

dimensionner l'ecran [FAQ]


Sujet :

C++Builder

  1. #1
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut dimensionner l'ecran
    je souhaite faire un teste a l'ouverture de ma forme pour connaitre la resolution de l'ecran et si elle n'est pas conforme je voudrais la redimensionner si cela est possible.
    la lecture de la resolution se fait avec screen
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    code:
    FormMain->Width = Screen->Width;
    FormMain->Height = Screen->Height;
    Width et Height donne la resolution de l'ecran
    je n'ai pas trouve comment ecrire une resolution differante.

  2. #2
    Expert confirmé

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par défaut
    Réponse dans la faq C++ Builder : http://c.developpez.com/faq/bcb/?pag...ngerresolution
    par contre je ne l'ai jamais testé, mais si c'est dans la faq ca doit fonctionner
    A plus

  3. #3
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    merci pottiez pour ta reponse.
    c'est vrai que l'on n'a pas le reflex de consulter systematiquement la FAQ, en plus je me souvient de l'avoir lu

  4. #4
    Expert confirmé

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par défaut
    Je l'avais lu il y a pas encore très longtemps.

  5. #5
    Membre émérite
    Avatar de Interruption13h
    Inscrit en
    Août 2005
    Messages
    603
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 603
    Par défaut
    Salut !

    Sûrement j'ai pas compris,mais je tente ma chance :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    FormMain->Align=alClient;
    ou :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    FormMain->WindowState=wsMaximized;
    Aussi,je croi plutôt que t'as un problème d'emplacment de tes composant placés sur ta form ,et ça selon le changement de la taille de celle ci

    A part ça,plus de précision serai la bienvenu

    A+

  6. #6
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    merci pour ta reponse interruption13h mais c'est bien la reponse de pottiez qu'il me fallait j'ai une forme qui doit etre affiche sur un ecran de 600 par 800 si au demarrage la resolution n'est pas bonne je la change et j'affiche ma forme

  7. #7
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    j'ai teste la fonction de la FAQ pour changer la resolution mais rien ne se passe je n'ai pas de message d'erreur a la compilation exepte que la valeur de result n'est pas utilisee il doit manquer quelque chose mais je vois pas quoi est l'aide en ligne ne connait pas les termes utilises.

  8. #8
    Membre chevronné


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 855
    Par défaut
    Citation Envoyé par blondelle
    j'ai teste la fonction de la FAQ pour changer la resolution mais rien ne se passe je n'ai pas de message d'erreur a la compilation exepte que la valeur de result n'est pas utilisee il doit manquer quelque chose mais je vois pas quoi est l'aide en ligne ne connait pas les termes utilises.
    Quel est ton système d'exploitation ?

  9. #9
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    mon systeme d'exploitation est windows XP pro

  10. #10
    Membre chevronné


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 855
    Par défaut
    Citation Envoyé par blondelle
    mon systeme d'exploitation est windows XP pro
    J'avais testé le code sous XP pro

  11. #11
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    alors j'ai surement ecrit une betise
    code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    TFormMain *FormMain;
    //---------------------------------------------------------------------------
    __fastcall TFormMain::TFormMain(TComponent* Owner)
            : TForm(Owner)
    {
    // on supprime le trait de reduction le carre d'agrandissement
    // et la croix de fermeture
      TBorderIcons tempBI = BorderIcons;
      tempBI >> biSystemMenu;
      BorderIcons = tempBI;
     
    int Width;
    Width = 800;
    int Height;
    Height = 600;
       TDeviceMode *Dev = new TDeviceMode;
       Dev->dmPelsWidth = Width;
       Dev->dmPelsHeight = Height;
       Dev->dmFields = DM_PELSWIDTH | DM_PELSHEIGHT;
       bool result = (ChangeDisplaySettingsA(Dev, CDS_RESET) == DISP_CHANGE_SUCCESSFUL);
       delete Dev;
       if (bool result = false)
       {
       ChangeDisplaySettingsA(0, 0);
       }
    }
    //---------
    le code tel que je l'ai repris a l'initialisation de la Form

  12. #12
    Membre chevronné


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 855
    Par défaut
    Je suis passé au SP2 depuis et ca ne fonctionne pas effectivement ...

  13. #13
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    y a t'il une solution avec l'api windows et ou trouver des exemples svp

  14. #14
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    j'ai trouve une possibilite de modifierer ma resolution ecran en utilisant
    dans .h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    void__fastcall ChgtResolutionEcran(TMessage & Msg);
    //
    BEGIN_MESSAGE_MAP
    MESSAGE_HANDLER(WM_DISPLAYCHANGE, TMessage, ChgtResolutionEcran)
    END_MESSAGE_MAP(TForm)
    //
    dans .cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    void__fastcall TForm1::ChgtResolutionEcran(TMessage, Msg)
    {
    mon code
    }
    comment je dois ecrire mon code pour faire passer ma resolution dans Msg

  15. #15
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    ou peut on trouver des renseignements pour les fonctions du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    BEGIN_MESSAGE_MAP
    MESSAGE_HANDLER(WM_DISPLAYCHANGE, TMessage, ChgtResolutionEcran)
    END_MESSAGE_MAP(TForm)
    je dois changer au demarrage de l'application la resolution
    de 1280 par 1200
    en
    800 par 600

  16. #16
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Par défaut
    Je ne pense pas que ce que tu indiques te permettent de changer la résolution. Il s'agit d'un MESSAGE_HANDLER c'est à dire qu'il traite l'arrivée d'un message. Autrement dit là tu réagirais à la modification de la résolution.

    Je te dirais plutôt d'aller voir tu côté de SendMessage si tu veux envoyer un message.

  17. #17
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    merci neilos je vais voir ce je trouve

  18. #18
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    J’ai fais des recherches avec la fonction SendMessage pour redimensionner l'ecran et je ne comprend pas tout il me faut quelques eclaicissements s.v.p.
    Premierement.
    Le Handle que l’on doit passer doit-il être celui du bureau.
    Si oui peut-on utiliser cette fonction sans passage de paramètres.
    Code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Handle = FindWindow() ;
    Deuxiement.
    Dans la fonction
    Code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SendMessage(Application->Handle, WM_SIZE, xxxx) ;
    WM_SIZE contient plusieurs paramètres comment écrire la fonction quand l’on veut ne modifier que 1 ou 2 paramètres par exemple ( Width, Height ) sans modifier les autres parametres peut-on les ignorer ou faut-il les declarer NULL .

  19. #19
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    J'ai trouve comment acquerir la dimension de l'ecran.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    //-----------------------------------------------------------
    #include <vcl.h>
    #pragma hdrstop
    #include "Unit1.h"
    //-----------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //-----------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    RECT rect;
    HWND wh = GetDesktopWindow();
    GetWindowRect(wh, &rect);
    ShowMessage (AnsiString("haut ") + rect.top + AnsiString(" gauche ") + rect.left + AnsiString(" largeur ") + rect.right + AnsiString(" longueur") + 
    }
    est ce que ce code est correct de plus je ne comprend pas l'ecriture pour
    RECT rect;
    et
    HWND wh;
    il y a quelque chose qui m'echappe quelqu'un peut il me renseigner s.v.p.
    Je cherche maintenant a redimensionner l'ecran.

  20. #20
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Par défaut
    Euh mais pour récupérer la résolution pourquoi ne fait tu pas comme tu l'as si bien indiqué dans ton premier post :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Screen->Width
    Screen->Height

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 5
    Dernier message: 03/05/2009, 11h22
  2. Réponses: 4
    Dernier message: 17/06/2008, 20h01
  3. [VB6] Touche impr écran
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 12/11/2002, 07h38
  4. [TP]lire une ligne de l'ecran et la stocker dans une chaine
    Par Bleuarff dans le forum Turbo Pascal
    Réponses: 26
    Dernier message: 02/07/2002, 10h08
  5. Re-dimensionnement automatique de composants
    Par ludo_7 dans le forum C++Builder
    Réponses: 10
    Dernier message: 16/05/2002, 16h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo