begin process at 2012 05 30 16:22:40
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

Autre

 > 

Reinitialiser l'ecran


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

Reinitialiser l'ecran

lundi 9 juillet 2007 à 15:53:16 | Reinitialiser l'ecran

fredsor

Membre Club
Bonjour a tous,
J'ai cherché sur le forum, sans succès ( beaucoup de solutions sont proposées pour application console, ce qui n'est pas mon cas)
Je programme en Win32 une appli pour Pocket PC. J'affiche un premier ecran avec différents controles (bouton, editbox,static ou lisbox) . Mais je voudrais que lorsque je clique sur un bouton, cela laisse mon appli ouverte, mais efface tous les controles, pour ensuite en recreer de nouveaux sur un ecran "vierge" ( et ainsi de suite, l'appli devant géré un certain nombre d'nchainement d'ecran...)

Je ne vois pas trop comment procéder, comme j'ai créé mes controle dans le WM_CREATE, où devrais-je ensuite créer les nouveaux? et comment effacer l'ecran actuel? ( pour l'instant j'ai tester en faisant des DestroyWindow, pas terrible ^^ ).

Voila, merci d'avance
Si je ne suis pas clair n'hesitez pas
mardi 10 juillet 2007 à 09:54:02 | Re : Reinitialiser l'ecran

rt15

Membre Club Administrateur CodeS-SourceS
Salut,

Tu peux peut être jouer avec ShowWindow, qui prend peut prendre SW_HIDE et SW_SHOW en paramètre.

Y a CloseWindow aussi.

Mais je ne sait pas si ces deux fonctions marchent avec des contrôles.
mardi 10 juillet 2007 à 10:08:25 | Re : Reinitialiser l'ecran

fredsor

Membre Club
Salut,
Merci pour ta réponse.
Je ne pense pas que ce soit ce qu'il me faut : closeWindow n'est pas reconnu ( pas mal de fonctions ne sont pas reconnue par Windows CE), quant à  showWindow est reconnu mais ne fait pas ce que je voudrais il me semble.

En fait, moi je voudrais qu'en fonction d'une action, cela me "vide" mon ecran, mais me laisse la fentre principal active, et qu'ensuite je puisse ajouter par exemple un bouton en plein milieu de cet ecran maintenant blanc...

Merci d'avance pour ceux qui auraient une idée...
mardi 10 juillet 2007 à 10:56:54 | Re : Reinitialiser l'ecran

rt15

Membre Club Administrateur CodeS-SourceS
Bah je viens d'essayer ShowWindow sous XP : on peut effacer un bouton de la form.

Il suffit de passer le handle de fenêtre du bouton en question.

Si tu veux effacer plusieurs contrôles en même temp, ça devrait pouvoir se faire en les mettants dans une fenêtre de classe STATIC, et en donnant le handle de cette fenêtre à ShowWindow.


mardi 10 juillet 2007 à 11:04:34 | Re : Reinitialiser l'ecran

fredsor

Membre Club
Oki pas bete ^^
Comment tu les mets tous dans une fenetre static? ( je les ajoute tous dans ma fentre principale créée avec CreteWindow() )
Et comment ensuite recreer un nouveau controle, puisque pour le premier ecran je l'ai fait dans le WM_CREATE.
Merci je reteste !
mardi 10 juillet 2007 à 11:24:16 | Re : Reinitialiser l'ecran

rt15

Membre Club Administrateur CodeS-SourceS
Pour placer dans un STATIC, il doit suffire de mettre le handle du STATIC dans le hWndParent du CreateWindow des différents contrôles d'une même page.

Donc dans ton WM_CREATE, tu peux :
1 Créer tous tes STATIC, un par page, et tu récupères leur handle dans un tableau.
2 Cacher tous tes STATIC, sauf celui de la première page, avec ShowWindow.
3 Créer tous tes contrôles dans le bon STATIC en leur affectant hWndParent.

Une alternative au STATIC pour se débarrasser des contrôles d'une form, c'est d'utiliser GetWindow.

Ca doit ressembler à ça :

HWND hwnd;

hwnd = GetWindow(HandleForm, GW_CHILD);
while (hwnd != NULL)
{
    ShowWindow(hwnd, SW_HIDE);
    hwnd = GetWindow(hwnd, GW_HWNDNEXT);
}

Mais bon, après la partie chiante, c'est de se souvenir des handle des différents contrôles de chaque pages pour les réafficher avec ShowWindow.


mardi 10 juillet 2007 à 11:49:59 | Re : Reinitialiser l'ecran

fredsor

Membre Club
Ok merci pour tes conseils je vais essayé tout ca
En fait avant mon WM_CREATE je parse un fichier contenant les infos me disant quels controles créer, et ensuite je remplissait des tableaux contenant ces informations, et lisait ces tableaux pour créer les composants
Donc la j'ai essayé, lors du clique sur un bouton, de faire un DestroyWindow() pour chaque composants, puis je reinitialise les tableaux
Enfin, je relance un noueau parsing sur un autre fichier, et appelle à nouveau le WM_CREATE avec un SendMessage .

Ca ma l'air pas mal pour l'instant, je verrais si ca plante plus loin! ^^

Encore merci pour ton aide, je regarde tout de meme les static ( le souci c'est que je ne connais pas a l'avance le contenu de mes ecrans : je recois le premier fichier via une requete http, jenvoi une reponse et recois un nouveau fichier etc...)


Cette discussion est classée dans : bouton, controles, appli, ecran, reinitialiser


Répondre à ce message

Sujets en rapport avec ce message

appli ou video en fond d'ecran comme bsplayer [ par totomaze ] totomazeSalutj aurais voule savoir le code pouttre une application ou une video en fond d'ecran comme bsplayer (derriere les iconesmerci (win32) appli de style install [ par mogwai93 ] bonjourje suis en train de faire un appli de style install :des boutons en bas : precedent, suivant, quitterqui ont leurs codes qui ne changent pas su Une histoire de Double Buffering [ par equimose ] --//Equimose//--salut à tous !je souhaite savoir programmer un double buffering pour mon appli !Mon appli pour faire simple dessine des objets a l'ecr Raffraichissement fenetre sur 2 ecrans [ par Corwin01 ] Bonjour a tous, Voila mon probleme est simple pas besoin de code... je gère dans mon appli le multi ecran jusque là tout va bien j'ai un bouton dessus Visible ou non [ par computers123 ] Bonjour,Comment fait-on pour rendre un bouton, textbox, etc... visible ou non .Dans la propriété il existe le ligne visible (false ou true) comment ap (win32) scrollbar sur partie de l'ecran [ par mogwai93 ] bonjour, j'aimerais avoir un scrollbar que sur une zone de l'ecran exemple :   http://img154.imageshack.us/img154/221/image6gr.gif pour le moment, j Lancer 2 fois la même appli. [ par elademri ] --API WIN32--Tout est dans le titre, mon problème : créer un prog permettant de lancer la même application 2 fois, chose impossible pour l'application Appli non MFC utilisant une DLL MFC : comment pomper les messages SOCKET ? [ par jeppy ] Salut à tous, Voila, j'ai un gros os sur lequel je suis depuis un moment et impossible de trouver une réponse ! Je bosse acutellement sur une appli, q Ca fonctionne qu'à partir de Visual C, pas avec l'exe ! [ par schn ] Bonjour,J'ai une appli qui tourne sous Visual C++. net (appli MFC)J'utilise une bdd ACCESS.Tout fonctionne bien lorsque j'execute mon code à partir de Champ edit [ par mogwai93 ] bonjour j'ai un champ edit d'une certaine taille sur l'ecran. Lorsque je rentre du texte via l'affichage, j'ai une limitation qui semble correspondr


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

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 : 4,649 sec (3)

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