begin process at 2012 05 30 07:14:31
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

API

 > 

question de débutant sur hwnd


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

question de débutant sur hwnd

vendredi 27 août 2004 à 08:39:38 | question de débutant sur hwnd

leprov

salut a tous. bon une question toute bete.
je voudrais a chacune de mes actions savoir si ma fenetre est ouverte, férmée, rétrécie,etc. alors la question que je me pose : est ce que je dois créer un hwnd global que j'initialise a chaque ouverture de ma fenetre et ke a chaque fermeture (je dois dc controler tous les cas, ok, annuler, la croix...) j'invalide mon hwnd global, ou un findwindow a chaque fois que j'ai besoin serait la solution? dans ce cas je fait comment, sachant que la fenetre en question est une dialogbox? paske findwindow ca marche comment? jai cherché msdn et jai regardé les sources ou c'est utilisé, jai pas trop capté comment je fait pour l'utiliser. merci d'avance
vendredi 27 août 2004 à 11:07:38 | Re : question de débutant sur hwnd

AlexMAN

Membre Club
Ben tu utilises un hwnd global ke tu initialises ds ton WM_INITDIALOG et pis apres tu joues avec ! Pas de findwindow puis ce que tu as le hwnd, pkoi le chercher ?

++
vendredi 27 août 2004 à 11:38:11 | Re : question de débutant sur hwnd

DeAtHCrAsH

Une fois que tu as défini ton handle en globale il n'est pas nécéssaire de le rechercher a chaque fois que tu voudras t'en servir. c'est bien le but des varaibles globales.

Tu vas donc déclarer le handle en global et tu va l'initialiser dans ton WM_INITDIALOG:
#include <....>
...
HWND hDlg;
...

BOOL CALLBACL AppDlg(.......)
{
case WM_INITDIALOG:
hDlg = hWnd;
break;
....
}

APIENTRY WinMain(.....)
{
...
}


Ensuite pour trouver dans quel etat est ta fenetre, sert toi de la fonction GetWindowPlacement(). Si je me trompe pas elle renvoie un flag en fonction de l'etat de la fenetre : WM_MAXIMIZE pour agrandie, WM_MINIMIZE pour retrécie, WM_SHOWNORMAL pour etat normal,....


Shell
vendredi 27 août 2004 à 11:44:58 | Re : question de débutant sur hwnd

AlexMAN

Membre Club
Je savais pas pour GetWindowPlacement(), jviens de verifier, c tt a fait exact ce ke tu dis DeathCrash. Sinon il existe des fonctions IsQuelqueChose : IsIconic, IsZoomed, IsWindow...Etc.
Mais c koi le mieux ?
vendredi 27 août 2004 à 12:17:09 | Re : question de débutant sur hwnd

leprov

non ma question est uniquement "qu'est ce qui sera la mieux?" paske pr moi, le findwindow sera plus lourd, mais la variable globale est plus chiante a manier et moins sure. et si j'utilise le findwindow, ca marche comment? je fais comment pour utiliser findwindow sachant que je cherche ma dialogbox? je sais bien que je vais pas utiliser les 2, ca serait debile (chui newbie en api, mais le C++ ca va, je manie correctement on dira)
vendredi 27 août 2004 à 12:19:15 | Re : question de débutant sur hwnd

leprov

et le probleme si j'initialise mon hwnd dans la initdialog, est ce que quand ma fenetre se ferme mon handle sera invalidé corectement ou est ce qu'il faut ke je le fasse a la main des ke je fais une action suceptible de fermer ma fenetre? genre est ce que je dois faire
case ID_CANCEL:
monhwnd = 0;
//traitement;
break;

???????
vendredi 27 août 2004 à 12:34:31 | Re : question de débutant sur hwnd

DeAtHCrAsH

AlexMan> Le mieux c'est d'utiliser GetWindowPlacement() car elle te renvoie l'etat actuel de ta fenetre.
Si tu utilises IsIconic, tu vas recuperer un booléen qui te dira simplement si ta fenetre est minimisé ou pas mais ne te donnera pas son état et tu devras donc faire des tests avec d'autre fonction comme IsZoomed(),....
GetWindowPlacement te renvoie le résultat direct.

leprov> Apparemment t'a pas compris grand chose a l'avantage des variables globales. Je vois pas ou est la difficulté a utiliser une varaible qui en plus est globale!
Au cas ou tu ne l'aurais pas compris, le handle d'une fenetre est crée a son lancement et ne change pas durant toute l'execution de celle ci, quelque soit sont etat d'affichage!

T'es question ne sont pas non plus très clair. Ca reflete surement le fait que tu n'ais pas compris certaines bases du C et l'utilisation des fenetres et dialog!

Qu'est ce que tu appelles "invalidé le HWND" ???
A quoi ca sert de rechercher sa propre fenetre avec FindWindow() alors que le handle tu l'as deja ???

T'es sure d'avoir tout bien compris concernant la programmation en C/C++ ???

Shell
vendredi 27 août 2004 à 12:39:12 | Re : question de débutant sur hwnd

AlexMAN

Membre Club
ok DeathCrash, merci et leprov ecoute ce kil te dit, c skil faut faire.

++
vendredi 27 août 2004 à 12:56:28 | Re : question de débutant sur hwnd

leprov

bon ma kestion est pas claire.... si on est bien d'accord un hwnd est un pointeur. un pointeur est valide ou invalide. ce que je dis c'est que j'ai stocké mon hwnd ds une variable globale, j'ai donc un pointeur sur ma fenetre. mintenant je ferme ma fenetre, et j'utilise mon hwnd. et la ca fait koi, ca va me provoquer une erreur paske mon hwnd pointe sur une fenetre qui n'existe plus, ou ca va me sortir que mon pointeur est invalide et mon prog va continuer a s'executer correctement? si je fais un showwindow sur ce hwnd, ou un getwindowplacement, est ce que ces fonctions vont me sortir une erreur, ou fonctionner en me disant que l'etat de cette fenetre est qu'elle n'existe pas? mon probleme dans l'utilisation de la variable globale est la, est ce que une fois ma fenetre fermée cette variable est toujours utilisable, ou est ce qu'il faut que dans mon analyse des messages envoyés a ma fenetre il faut a chaque fois ke j'invalide mon hwnd pour dire que j'ai fermé ma fenetre?
j'espere que ma kestion est plus claire
vendredi 27 août 2004 à 12:57:41 | Re : question de débutant sur hwnd

leprov

quand a ta question sur les bases du C/C++ tinkiete pas pr ca. le probleme concerne la prog systeme et les apis que je maitrise pas tres bien

1 2

Cette discussion est classée dans : fenetre, débutant, question, hwnd, jai


Répondre à ce message

Sujets en rapport avec ce message

SDL_Surface to HWND [ par unionx ] Bonjour j'ai un question qui m'interesse beaucoup est  je veux avoir un aide si il est possible , merci avance .bonne voila mon question* - je v LRESULT CALLBACK dans une class [ par TeniX ] Salut, Je crée une class PRINCIPAL qui memorise la class WNDCLASSEX class PRINCIPAL { public: HINSTANCE hinstance; HWND hwndp Obtenir un handle d'un fenetre Winform sous la forme d'un HWND [ par gwenCPP ] Bonjour, J'ai crée une application WinForm avec visual studio c++ 2003.NET. J'ai besoin d'obtenir un handle de ma fenetre principale et de le convert question de débutant [ par catamenia ] bonjour,J'ai récupérer un fichier .cpp et .h contenant une classe.j'ai ajouter les fichiers au projet.Quand je déclare une instance de la classe, j'ai C/C++ [ par Ziman ] Bonjour,je vais poser une question qi va vous sembler bizarre mais je me pose cette question. J'apprend en ce moment l'API WIN32 en C et bientot, je v Question de debutant [ par teddybe4r ] Bon s'il vous plait aider moi à éclaisir ma voie.voilà mon problème. Jai téléchagée Dev-C++ ( Semble vrm bien ). Comme je vous lai Copier un tableau de couleur vers la fenetre [ par supergrey ] Bonjour, je voudrais copier les données d'un tableau de char contenant des valeurs RGB vers la fenetre de mon application.J'ai chercher mais je ne tro hwnd de la fenetre active [ par alphaone ] Comment voir si la fenétre avec le hwnd X est active ou voir le hwnd de la fenetre active, car je vais faire une boucle qui vérifié périodiquement que Tabulation dans les champs d'une fenetre [ par billy5938 ] Bonjour,Je veux pouvoir parcourir les champs d'édition (ou même des checkBox) d'une fenetre. En utilisant la methode IsDialogMessage dans la boucle de HWND et Preripherique [ par LordBob ] Bonjour a tous, voila en fait ma question est plutot simple, est ce qu'un HWND est attribué de façon aléatoire ou non? Je m'explique par exemple dans


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,624 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales