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 :

HWND : envoyer une image dans la vue � la bonne dimension


Sujet :

MFC

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �clair�
    Profil pro
    Inscrit en
    D�cembre 2004
    Messages
    759
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 759
    Par d�faut HWND : envoyer une image dans la vue � la bonne dimension
    Salut,

    Voil�, j'ai une fonction de Preview (pas � moi) qui envoie des images � l'endroit sp�cifi� par HWND.

    Soit c'est une fen�tre qu'on cr�e soi-m�me avec CreateWindow, soit on peut la mettre dans la vue avec le param�tre m_hWnd de CMyProjectView.

    Oui, mais voil�, je voudrais que le cadre en fait ne soit pas totalement celui de la vue, je voudrais bien l'afficher DANS la vue (donc pas de CreateWindow) mais PAS SUR TOUTE LA SURFACE. (je veux que la surface d'affichage d�pende de la r�solution demand�e, donc des param�tres m_iWidth et m_iHeight des images.

    Comment puis-je faire.
    Merci

  2. #2
    Membre �clair�
    Profil pro
    Inscrit en
    D�cembre 2004
    Messages
    759
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 759
    Par d�faut
    Donc n'y a-t-il pas un moyen d'avoir un HWND de la vue l�g�rement diff�rent de m_hWnd (un m_hWnd restreint � une certaine longueur et largeur) :

  3. #3
    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
    Par d�faut
    Citation Envoy� par stof
    Donc n'y a-t-il pas un moyen d'avoir un HWND de la vue l�g�rement diff�rent de m_hWnd (un m_hWnd restreint � une certaine longueur et largeur) :
    Salut, �a ne veut pas dire grand chose ce que tu dis lol �
    un HWND d�signe un handle de fen�tre point.
    pour manipuler les dimensions de la fen�tre il faut utiliser les fonctions MoveWindow ou setWindowPos .
    si tu ne veux pas que cette fonction dessine dans toute la surface de ta fen�tre �a ne va pas �tre facile.
    Sauf � magouiller en cr�ant une fen�tre fille dans ta fen�tre principale de la dimension requise et donner son HWND a ta fonction.


  4. #4
    Membre �clair�
    Profil pro
    Inscrit en
    D�cembre 2004
    Messages
    759
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 759
    Par d�faut
    Citation Envoy� par farscape
    pour manipuler les dimensions de la fen�tre il faut utiliser les fonctions MoveWindow ou setWindowPos .
    si tu ne veux pas que cette fonction dessine dans toute la surface de ta fen�tre �a ne va pas �tre facile.
    Sauf � magouiller en cr�ant une fen�tre fille dans ta fen�tre principale de la dimension requise et donner son HWND a ta fonction.
    Je me doutais de la r�ponse...

    1�/ Manipuler les dimensions de la fen�tre me para�t pas �tre une bonne solution parce que c'est pas le comportement qu'on attend que tout le cadre suive les dimensions de ce qu'on envoit dedans

    2�/ La magouille, c'est un CreateWindow qu'on place par-dessus la fen�tre principale? Si c'est �a, c'est pas la peine non plus.

    Je posais quand-m�me la question au cas o�, mais donc je ne peux pas indiquer � cette fonction une destination plus pr�cise que
    - la vue (m_hWnd)
    - le cadre (m_hWndOwner)

    Ben mince alors

  5. #5
    Membre �clair�
    Profil pro
    Inscrit en
    D�cembre 2004
    Messages
    759
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 759
    Par d�faut
    Bon, en fait, �a marche avec MoveWindow; il faut juste que je remette la fen�tre � sa bonne dimension avec un nouveau MoveWindow quand j'ai fini d'utiliser la fonction :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    HWND myHwnd;
    	myHwnd=pView->m_hWnd;
    	MoveWindow(myHwnd, 0, 0, m_Width, m_Height, TRUE);
     
    	MaFonction(m_hWnd);
    Pour ta question ci-dessous : parce que c'est tout laid d'avoir une fen�tre comme �a par-dessus d'une application MDI.

    Mais merci pour ton MoveWindow, je vais '"magouiller" avec �a, lol

  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
    Par d�faut
    Citation Envoy� par stof
    Citation Envoy� par farscape
    pour manipuler les dimensions de la fen�tre il faut utiliser les fonctions MoveWindow ou setWindowPos .
    si tu ne veux pas que cette fonction dessine dans toute la surface de ta fen�tre �a ne va pas �tre facile.
    Sauf � magouiller en cr�ant une fen�tre fille dans ta fen�tre principale de la dimension requise et donner son HWND a ta fonction.
    Je me doutais de la r�ponse...

    1�/ Manipuler les dimensions de la fen�tre me para�t pas �tre une bonne solution parce que c'est pas le comportement qu'on attend que tout le cadre suive les dimensions de ce qu'on envoit dedans

    2�/ La magouille, c'est un CreateWindow qu'on place par-dessus la fen�tre principale? Si c'est �a, c'est pas la peine non plus.

    Je posais quand-m�me la question au cas o�, mais donc je ne peux pas indiquer � cette fonction une destination plus pr�cise que
    - la vue (m_hWnd)
    - le cadre (m_hWndOwner)

    Ben mince alors
    pourquoi ?

  7. #7
    Membre �clair�
    Profil pro
    Inscrit en
    D�cembre 2004
    Messages
    759
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 759
    Par d�faut
    On a post� en m�me temps donc r�ponse ci-dessus.
    Merci.

  8. #8
    Membre chevronn�
    Avatar de matazz
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    471
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 471
    Par d�faut
    je sais pas mais si tu cr�e un bouton, ou un composant quelconque au dimensions que tu veut, que tu passe le HWND de ce composant � ta librairie, �a devrai marcher Non?

  9. #9
    Membre �clair�
    Profil pro
    Inscrit en
    D�cembre 2004
    Messages
    759
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 759
    Par d�faut
    D�j� bien vu de proposer autre chose (la m�thode MoveWindow n'est finalement pas terrible pour plein de raisons : si on a une boite qui se d�place en dehors de la nouvelle zone, on voit des tra�n�es puisque seule la partie du cadre d�fini est redessin�e, etc, etc.).

    J'aime donc bien l'id�e de cr�er provisoirement un �l�ment dans la fen�tre pour lui passer le contenu.

    Mais je ne vois toujours pas comment �viter le CreateWindow:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    HWND hwndButton = 0;
    	hwndButton = CreateWindow (
    	"",
    	"",
    	WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
    	0, 0, m_Width, m_Height,
    	myHwnd,
    	(HMENU) 1,
    	NULL,
    	NULL
    	);
    Ca ne me convient pas car c'est encore une nouvelle fen�tre qui se superpose; comment faire?

  10. #10
    Membre �clair�
    Profil pro
    Inscrit en
    D�cembre 2004
    Messages
    759
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 759
    Par d�faut
    VRAIMENT RESOLU

    C'est la fonction SetWindowPlacement qui me manquait en fait :

    HWND myHwnd = pFW->m_hWnd; //fen�tre de l'application
    WINDOWPLACEMENT wpst;

    //** On diminue la taille de la fen�tre pour l'ajuster � la taille des images
    pFW->GetWindowPlacement(&wpst);
    wpst.showCmd=SW_RESTORE;
    pFW->SetWindowPlacement(&wpst);

    //** D�placement et dimensionnement de la fen�tre selon les sp�cifications
    MoveWindow(myHwnd, 0, 0, m_Width, m_Heightn, TRUE);

    //** Fonction de Preview
    Preview(myHwnd);

    //** Maintenant que le dessin se fait dans la zone sp�cifi�e, on peut restaurer l'aspect MAXIMIZED de la fen�tre
    wpst.showCmd=SW_MAXIMIZE;
    pFW->SetWindowPlacement(&wpst);

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [V8] Envoyer une image dans odoo xml-rpc
    Par oitsuki dans le forum Odoo (ex-OpenERP)
    R�ponses: 3
    Dernier message: 11/12/2014, 02h35
  2. Envoyer un email avec une image dans le corps du mail
    Par nitch01 dans le forum Langage
    R�ponses: 1
    Dernier message: 04/01/2012, 08h36
  3. Envoyer un mail avec une image dans le corps du mail
    Par tkoprowski dans le forum Android
    R�ponses: 1
    Dernier message: 24/08/2011, 17h03
  4. R�ponses: 3
    Dernier message: 06/12/2008, 19h34
  5. R�ponses: 9
    Dernier message: 02/06/2007, 15h42

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