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 :

HINSTANCE


Sujet :

MFC

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    21
    D�tails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 21
    Par d�faut HINSTANCE
    J'ai besoin de r�cuperer un handle d'une instance "hInstance" pour cr�er une fen�tre � l'aide de cette fonction :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    HWND CreateWindowEx(
      DWORD dwExStyle,    
      LPCTSTR lpClassName,  
      LPCTSTR lpWindowName, 
      DWORD dwStyle,     
      int x,               
      int y,              
      int nWidth,        
      int nHeight,          
      HWND hWndParent,     
      HMENU hMenu,         
      HINSTANCE hInstance, 
      LPVOID lpParam     
    );
    Comment dois-je faire?
    Merci d'avance


    [Balises CODE rajout�es par Loulou24, merci d'y penser � l'avenir]

  2. #2
    Expert confirm�

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par d�faut
    Utilise le hInstance fourni dans WinMain, ou bien le r�cup�rer via GetModuleHanle( NULL ).

  3. #3
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    21
    D�tails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 21
    Par d�faut
    OK, mais WinMain est appel� automatiquement par windows. Or je souhaite cr�er ma fen�tre � un moment bien pr�cis dans mon programme. Je ne pense pas que je puisse avoir le contr�le mon programme en utilisant WinMain.
    Qu'en pensez vous?

  4. #4
    Expert confirm�

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par d�faut
    Citation Envoy� par Pilou_m79
    OK, mais WinMain est appel� automatiquement par windows. Or je souhaite cr�er ma fen�tre � un moment bien pr�cis dans mon programme. Je ne pense pas que je puisse avoir le contr�le mon programme en utilisant WinMain.
    Qu'en pensez vous?
    Hum, ce n'est pas vraiment Windows qui appelle WinMain, mais le code g�n�r� par le compilateur. Et justement, ce startup code donne � WinMain GetModuleHandle( NULL ), qui permet de r�cup�rer le hIstance (qui n'est demand� que sous Win9x/Me au passage).
    Donc CreateWindowEx( ..., GetModuleHandle( NULL ), ... );

  5. #5
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    21
    D�tails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 21
    Par d�faut
    et comment dois je appeler WinMain dans mon programme?

  6. #6
    Expert confirm�

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par d�faut
    C'�tait pour l'explication. Tu n'as pas � l'appeler, le compilo s'en charge.

  7. #7
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    21
    D�tails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 21
    Par d�faut
    j'ai du mal a comprendre! J'ai un programme qui tourne et qui a besoin de cr�er ou non plusieurs fen�tres � des endroits pr�cis.
    Comment dois je faire? (j'ai deja un main par ailleurs)

  8. #8
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    21
    D�tails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 21
    Par d�faut
    precision : je souhaite cr�er des fen�tre de type CWnd

  9. #9
    R�dacteur
    Avatar de Laurent Gomila
    Profil pro
    D�veloppeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par d�faut
    j'ai du mal a comprendre! J'ai un programme qui tourne et qui a besoin de cr�er ou non plusieurs fen�tres � des endroits pr�cis.
    Comment dois je faire?
    Ben...

    Citation Envoy� par Aurelien.Regat-Barrel
    CreateWindowEx( ..., GetModuleHandle( NULL ), ... );
    precision : je souhaite cr�er des fen�tre de type CWnd
    Ce serait pas du MFC �a ?

  10. #10
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    21
    D�tails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 21
    Par d�faut
    J'ai peut etre melanger les torchons et les serviettes en fait!
    Oui, c'est du MFC

  11. #11
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    21
    D�tails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 21
    Par d�faut
    Ce que j'ai r�ellement du mal a comprendre c'est la facon dont on cr��e un fen�tre de type CWnd!
    J'ai une classe qui h�rite de CWnd. Comment doi-je faire pour cr�er ma fen�tre et l'afficher � partir de cette classe?

  12. #12
    Expert confirm�

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par d�faut
    Les questions MFC c'est sur le forum VC++. Je d�place.
    Regarde un peu la doc des MFC:
    http://msdn.microsoft.com/library/en-us/vclib/html/_mfc_CWnd.3a3a.Create.asp
    ainsi que la FAQ VC++:
    http://c.developpez.com/faq/vc/

  13. #13
    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
    salut,
    effectivement si c'est MFC tu fais fausse route ...
    tu n'as pas a te soucier du main il y en a pas .
    le premier objet creer est de la classe CWinApp et la premiere fonction appel�e est InitInstance .
    pour la creation d'une fenetre c'est une histoire de contexte. (ou ? en reponse a quel evenement :menu bouton etc ).
    sachant que l'ide peut te generer de base une application fonctionnelle des le depart..

  14. #14
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    21
    D�tails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 21
    Par d�faut
    merci pour vos r�ponses, mais j'ai un peu de mal a vous suivre.
    Mon programme pour l'instant fonctionne avec un main (juste pour pouvoir faire des tests). Il cr�e une classe "MyController", celle-ci cr�er un objet de type "MyWindow" qui est une classe qui h�rite de CWnd (MyController passe un pointeur sur lui m�me � cet objet).
    Pour l'instant, mon programme tourne sans que je cr��e de fen�tre. J'ai un squelette de code et je v�rifie ainsi le bonne �change d'informations entre les deux classes. Cela fonctionne bien.
    Maintenant, je souhaite cr��e une fen�tre et l'afficher... mais je n'arrive pas � comprendre la d�marche � effectuer!
    Merci de m'�clairer sur la fa�on de proc�der.

  15. #15
    Expert confirm�

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par d�faut
    Les MFC c'est plus qu'une simple biblioth�que pour faire des fen�tres, c'est un framework, avec lequel tu organises ton code d'une certaine mani�re.
    Tu n'as pas de main(), mais un objet application. C'est le principe de ce framework, c'est comme �a.
    Tu ne devrais pas essayer de courcircuiter ce fonctionnement, tu n'auras que des complications.

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

Discussions similaires

  1. SetWindowsHookEx : pb de HINSTANCE
    Par benji_11 dans le forum Windows
    R�ponses: 3
    Dernier message: 18/03/2009, 14h38
  2. R�ponses: 32
    Dernier message: 16/04/2007, 11h05
  3. [type] HANDLE vs HINSTANCE
    Par ZaaN dans le forum Visual C++
    R�ponses: 4
    Dernier message: 23/01/2007, 14h35
  4. j'ai un probl�me sur les hinstances
    Par ramaro dans le forum C++
    R�ponses: 9
    Dernier message: 26/02/2006, 14h32
  5. Recup�rer un HWND a partir d'un HINSTANCE
    Par yotasse dans le forum Windows
    R�ponses: 2
    Dernier message: 30/01/2004, 16h00

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