Accueil > Forum > > > > Win Api : redessiner une fenêtre
Win Api : redessiner une fenêtre
mardi 22 août 2006 à 19:32:06 |
Win Api : redessiner une fenêtre

acryline
|
Bonjour déjà  Bon voilà mon problème et je seche depuis quelques heures dessus. Ce serait sympa de m'aider . Je fais un petit programme en API windows . J'ai dessiné une fenêtre, une image de fond, quelques boutons... J'aimerais pouvoir redessiner cette fenêtre quand je presse sur un bouton.
Les notifications des boutons sont testées dans "case WM_COMMAND" par une fonction de mon cru dans laquelle une structure de deux termes( BOOL) est mise à jour et qui est retournée par cette fonction..... ok ? ( En fait leurs valeurs sont inversée. )
J'ai vérifié, sous WM_COMMAND la structure est bien modifiée en passant pas la fonction en question. Alors j' utilise la fonction InvalidateRect comme ceci pour forcer le message WM_PAINT.
if (temoins.liste) InvalidateRect(hwnd, 0, TRUE);
Passons au code de case WM_PAINT :
case WM_PAINT: { HDC hdc =NULL; PAINTSTRUCT ps; hdc = BeginPaint(hwnd,&ps); if(temoins.couv) dessinerCouverture (hwnd,hdc,ps, "Carnet d'adresses",hBouton); // la fonction if(temoins.liste) exit(0); //pour voir si ça passe ...et non ! :( EndPaint(hwnd, &ps); return 0; } return 0;
Comme vous l'avez compris, ma fenêtre ne se ferme pas quand temoins.liste =TRUE. Pourquoi ?? J'aimerais bien pouvoir dessiner ma fenêtre avec une autre fonction quand temoins.liste =TRUE. Merci pour votre réponse. 
|
|
mardi 22 août 2006 à 19:41:51 |
Re : Win Api : redessiner une fenêtre
|
mardi 22 août 2006 à 19:49:09 |
Re : Win Api : redessiner une fenêtre

racpp
|
Salut, Comment est déclarée ta structure? en global ou en static dans la procédure de la fenêtre?
|
|
mardi 22 août 2006 à 19:51:57 |
Re : Win Api : redessiner une fenêtre

acryline
|
Je viens d'essayer ta solution mais la fenêtre reste ouverte  . Bon ça m'évite déjà de prendre le risque que le message change effectivement. Voici ma fonction au cazou... TEMOINS messagesBoutonsCouv( HWND hwnd,HWND *hBouton, UINT uMsg , WPARAM wParam, LPARAM lParam, TEMOINS temoins) { static long i=0,j=0; for(i=0;i<27;i++) { if(HIWORD(wParam)== BN_CLICKED) { if(lParam== (LPARAM)hBouton[i]) { for(j=0;j<27;j++) {DestroyWindow(hBouton[j]); } //les boutons s'effacent pour ça pas de problème temoins.couv=FALSE; temoins.liste=TRUE; } } } return temoins; }
|
|
mardi 22 août 2006 à 19:54:11 |
Re : Win Api : redessiner une fenêtre

vecchio56
|
La structure TEMOINS est passée par valeur, donc les changement sont pas pris en compte dans la fonction originale. Passe un pointeur de la structure, ou mets la en variable globale _____________________________________ Un éditeur de ressources gratuit pour Windows
|
|
mardi 22 août 2006 à 19:54:40 |
Re : Win Api : redessiner une fenêtre

acryline
|
La structure est en static et ça marche pas ... 
|
|
mardi 22 août 2006 à 19:59:06 |
Re : Win Api : redessiner une fenêtre

acryline
|
Je vais esayer mais ça va me prendre un peu de temps... moi les pointeurs j'aime pas ça lol et le variables globales j'essaie d'éviter... à plus pour les nouvelles :! et surtout merci pour vos réponses... c'est hyper rapide ! 
|
|
mardi 22 août 2006 à 20:03:45 |
Re : Win Api : redessiner une fenêtre

acryline
|
J'ai essayé en globale et en pointeur et ni l'un ni l'autre ne fonctionnent !! Quel casse tête !
|
|
mardi 22 août 2006 à 20:05:12 |
Re : Win Api : redessiner une fenêtre

vecchio56
|
void messagesBoutonsCouv( HWND hwnd,HWND *hBouton, UINT uMsg , WPARAM wParam, LPARAM lParam, TEMOINS* temoins) { remplacer tous les temoins. par des temoins-> rien a retourner } Mais j'ai un doute, je vois que ta fonction retourne une structure TEMOINS donc si tu l'affectais à la variable d'origine, ce devrait peut être marcher. Par contre utiliser un pointeur est plus performant _____________________________________ Un éditeur de ressources gratuit pour Windows
|
|
mardi 22 août 2006 à 20:08:43 |
Re : Win Api : redessiner une fenêtre

racpp
|
Pour les variables globales, on doit les éviter tant que possible. Les pointeurs sont au contraire indispensables en programmation C/C++. Ta fonction messagesBoutonsCouv() prend un pointeur comme 2ème paramètre. Tu sais ce n'est pas toujours facile de trouver une erreur à partir d'un morceau de code. Il faut voir la totalité du code si c'est possible.
|
|
Cette discussion est classée dans : fonction, liste, wm, fenêtre, temoins
Répondre à ce message
Sujets en rapport avec ce message
CListBox [ par wanny ]
Bonjour.Dans une classe d'une fonction, je déclare une autre classe (avec une boite de dialogue à afficher) :Dans la boite de dialogue, il y a une CLi
ShowWindow() [ par JCpp ]
ShowWindow(hdlg,SW_HIDE);Je viens de comprendre pourquoi quand je cache une fenêtre, elle n'apparaît pas avec la fonction : ShowWindow(hdlg,SW_SHOW);E
gestion de la souris dans une fenêtre OpenGL [ par philmus ]
salut, je commence à écrire des petits pgs OpenGL; maintenant, je doit gérer l'entrée (clavier et souris) pour interagir avec l'utilisateur. Le pb
ajouter fonction: "réduire la fenêtre" [ par alanbraxe31 ]
http://membres.lycos.fr/alanbraxe31bonjour tt le monde!je suis novice en c++ et je ne sais pas comment faire pour ajouter la fonction réduction à mon
Taille minimum pour une fenêtre [ par vecchio56 ]
BonjourComment faire pour empecher une fenêtre de faire moins qu'un certaine taille. Faut-il traiter WM_SIZE ou WM_SIZING en comment?Merci
prototype de fonction [ par loupin ]
D'abord bonjour a tous. Je debute en c tant bien que mal, mais j'ai un tout petit souci qui n'en ai pas un mais j'aimerais comprendre. Alors voici le
Probleme de Timer avec SetCursorPos [ par Maegis ]
Voila je fais une appli Win32 qui necesite l'emploi d'un timerLe probleme c'est que je ne recois jamois le message WM_TIMER ,en fait je le recois si j
Largeur d'un menu [ par ymca2003 ]
Bonjour,y a t'il une fonction (Win32 ou MFC) permettant de connaître la largeur du menu associé à une fenêtre ou pour ajuster la taille de la fenêtre
activer une fenetre dans une appli MDI [ par arno2004 ]
Bonjourj'ai récupérer un éditeur de dessin. j'y est ajouter une fonction'ci dessous) pour copier une zone sélectionnée dans une nouvelle fenêtre. la f
[Visual C] Comment rediriger des fprintf() vers une fenêtre windows [ par castelj ]
Bonjour,Débutant en programmation windows, mon problème est que j'aimerai savoir comment est-ce que l'on peut faire des fprintf dans une fenetre Windo
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|