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

MFC Discussion :

[MFC / Active X] Modifier la taille de la zone d'affichage


Sujet :

MFC

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 8
    Points : 5
    Points
    5
    Par défaut [MFC / Active X] Modifier la taille de la zone d'affichage
    Bonjour, j'ai une petite question.
    J'aimerais savoir comment on doit procéder afin de modifier la taille (à l'initialisation) de la zone d'affichage d'un contrôle ActiveX.
    Merci beaucoup

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    salut ,
    dans l'activex ou du coté applicatif ?

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Directement dans l'activeX ...

  4. #4
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    re,
    utilise:
    COleControl::SetControlSize
    This method sets the position and size of the ActiveX control. This function should not be used in your control constructor.

    Note that all coordinates for control windows are relative to the upper-left corner of the control.

    BOOL SetControlSize(
    int cx,
    int cy );
    voir aussi GetControlSize ...

  5. #5
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Merci beaucoup, ça marche impec !!
    Du coup j'ai une autre petite question, peut-on bloquer le redimensionnement de façon à empêcher l'utilisateur du composant activeX de redimensionner la zone d'affichage ?

  6. #6
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    selon quels criteres ?
    tu peux sur le ondraw faire un controle sur la taille et remettre l'ancienne taille .
    reste a savoir comment tu determine la taille de reference ..

  7. #7
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    ah ok, en fait, pour faire simple, je mets une image de fond, donc je voudrais que le controle prenne les dimensions de l'image (ce qui fonctionne).
    Et j'aimerais de plus que l'utilisateur ne puisse pas redimensionner la zone d'affichage du composant activeX.
    Je pensais qu'il y avait un moyen de bloquer directement le redimensionnement sans avoir à vérifier si la taille a été modifiée et si c'est le cas la remettre à la bonne dimension.

  8. #8
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    re,
    en fait tu fais le test que si la fonction AmbientUserMode(); renvoie faux .
    (tu controles la taille de l'image avec la valeur renvoyée par GetControleSize.)

  9. #9
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Merci merci beaucoup , ça marche presque parfaitement.
    Je dis "presque" car si effectivement tout se passe bien lorsqu'on essaie d'agrandir la zone d'affichage (celle ci se repositionne immédiatement à sa taille initiale), il n'en est pas de même lorsque l'on réduit la zone.
    En effet, à ce moment là, si effectivement la zone se redimensionne à la bonne taille (la taille initiale), le dessin lui n'est pas rafraichi correctement.
    Toute la parite entre la zone initiale (avant le redimensionnement) et la zone réduite (après redimentionnement) n'est pas redessiné et je ne comprends pas trop pourquoi car dans OnDraw, je fais bien ré-afficher à chaque fois l'image.

    Voici 2 images qui expliqueront probablement mieux que mes commentaires :
    http://perso.wanadoo.fr/web.com/Image1.jpg
    http://perso.wanadoo.fr/web.com/Image2.jpg

  10. #10
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    re,
    dans le cas de la detection d'un changement de taille et donc du retaillage de la zone rajoute :InvalidateControl();
    pour voir .

Discussions similaires

  1. Réponses: 7
    Dernier message: 23/01/2008, 23h36
  2. Réponses: 1
    Dernier message: 19/09/2007, 23h28
  3. Modifier la taille de la zone client C++ Builder 6.0
    Par kimlee dans le forum C++Builder
    Réponses: 3
    Dernier message: 10/08/2007, 16h48
  4. Modifier la taille de la fenêtre DOS
    Par bobgeldof7 dans le forum Scripts/Batch
    Réponses: 8
    Dernier message: 31/01/2004, 03h10
  5. Réponses: 5
    Dernier message: 27/11/2002, 14h08

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