begin process at 2012 05 29 12:34:32
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

modif d'info d'une fenètre avant sa création.


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

modif d'info d'une fenètre avant sa création.

mardi 21 septembre 2004 à 16:55:38 | modif d'info d'une fenètre avant sa création.

hdaniel

Bonjour,

je cherche a modifier l'apparence d'une fenêtre par exemple un bouton visible ou pas avant la création de la fenêtre.

pour que la fenêtre ai la bonne apparence dès sa création.

hdaniel
mardi 21 septembre 2004 à 18:21:12 | Re : modif d'info d'une fenètre avant sa création.

BruNews

Administrateur CodeS-SourceS
Fais tes manips dans WM_CREATE ou WM_INITDIALOG

ciao...
BruNews, MVP VC++
mercredi 22 septembre 2004 à 09:51:58 | Re : modif d'info d'une fenètre avant sa création.

hdaniel


J'avais déja essayé avec WM_CREATE et ça ne va pas.

je fais apparaitre le bouton avec :
m_CtrlBut.ShowWindow(SW_SHOW);
et ça me pête un popup debug assertion failed
file winocc.cpp line 301

y a peut-être un autre moyen de rendre visible un bouton.

hdaniel
mercredi 22 septembre 2004 à 10:05:23 | Re : modif d'info d'une fenètre avant sa création.

malik7934

Moi j'utilise un BOOL:

Variable global: BOOL setVisible, ensuite lors de l'appel je fais:
case IDC_BOUTON1:
setVisible =TRUE;
return (int)DialogBox(hInst,MAKEINTRESOURCE(IDD_FENETRE),NULL,fenetreDlg); }

et dans fenetreDlg, je fais un truc genre:
if (setVisible) {
hCtrl = GetDlgItem(hWndconf, IDC_BOUTON_A_AFFICHER);
showWindow(hCtrl, SW_SHOW);
}

Voilà!
mercredi 22 septembre 2004 à 10:40:15 | Re : modif d'info d'une fenètre avant sa création.

BruNews

Administrateur CodeS-SourceS
Une prochaine fois serait cool d'indiquer 'MFC' dans la question.

ciao...
BruNews, MVP VC++
jeudi 23 septembre 2004 à 09:34:13 | Re : modif d'info d'une fenètre avant sa création.

hdaniel

Bon, j'ai du mal a comprendre (j'suis pas un c++seur de longue date)

le passage par un bool tout a fais ok,

(int)DialogBox(hInst,MAKEINTRESOURCE(IDD_FENETRE),NULL,fenetreDlg); }
je comprends pas.

malik7934, quand tu dis
et dans fenetreDlg, je fais un truc genre:

c'est dans le constructeur?
fenetreDlg::fenetreDlg(CWnd* pParent )
: CDialog(fenetreDlg::IDD, pParent)

hdaniel
jeudi 23 septembre 2004 à 09:49:59 | Re : modif d'info d'une fenètre avant sa création.

malik7934

en fait, je crois que j'ai mal compris ce que tu veux.

Ma méthode fait la chose suivante: tu es sur une fenêtre, il y a un bouton "ajouter une editbox" par exemple. En cliquant sur ce bouton, une editbox apparaît, mais en changeant de fenêtre.

Si tu veux rester au même endroit, ben y a une source sur ce site qui t'expliquera: c'est pour une progress bar, je sais plus sa référence alors la voilà:

#ifndef __PROGRESSBAR_H
#define __PROGRESSBAR_H

#include <windows.h>
#include <commctrl.h>

class ProgressBar
{
private:
HWND hBar;

public:
int MaxRan;
int MinRan;

BOOL Init(HWND hwndbar); //Initialise le controle
BOOL SetRange(int nMinRange,int nMaxRange); //Définis la position Minimale et Maximale
void Hide(BOOL bVisible); //Afiche ou Cache le controle
BOOL IsVisible(void); //Détermine si le controle est visible
int SetStep(int nStep); //Définis le pas
int SetPos(int nPos); //Définis la valeur du controle
int Increment(int nIncrement);//Incrémente de nIncrement la valeur du controle
int IncrementStep(void);//Incrémente d'un pas définis par SetStep la valeur du controle
};

BOOL ProgressBar::Init(HWND hwndbar) //Initialise le controle
{
hBar=hwndbar;

if (hBar==NULL)
{
return FALSE;
}
return TRUE;
}

BOOL ProgressBar::SetRange(int nMinRange,int nMaxRange) //Définis la position Minimale et Maximale
{
if ((nMinRange<0) || (nMaxRange>65535))
{
return FALSE;
}

if(SendMessage(hBar,PBM_SETRANGE,0,MAKELPARAM(nMinRange,nMaxRange))==0)
{
return FALSE;
}

MinRan = nMinRange;
MaxRan = nMaxRange;

return TRUE;
}

int ProgressBar::SetStep(int nStep) //Définis le pas
{
int nOldStep;
nOldStep=SendMessage(hBar,PBM_SETSTEP,(WPARAM)nStep,0);
return nOldStep;
}

int ProgressBar::Increment(int nIncrement) //Incrémente de nIncrement la valeur du controle
{
int nOldPos;
nOldPos=SendMessage(hBar,PBM_DELTAPOS,(WPARAM)nIncrement,0);
return nOldPos;
}

int ProgressBar::IncrementStep(void) //Incrémente d'un pas définis par SetStep la valeur du controle
{
int nOldPos;
nOldPos=SendMessage(hBar,PBM_STEPIT,0,0);
return nOldPos;
}

int ProgressBar::SetPos(int nPos) //Définis la valeur du controle
{
int nOldPos;
nOldPos=SendMessage(hBar,PBM_SETPOS,(WPARAM)nPos,0);
return nOldPos;
}

void ProgressBar::Hide(BOOL bVisible) //Afiche ou Cache le controle
{
if (bVisible==TRUE)
{
ShowWindow(hBar,SW_SHOW);
}
else
{
ShowWindow(hBar,SW_HIDE);
}
}

BOOL ProgressBar::IsVisible(void) //Détermine si le controle est visible
{
return IsWindowVisible(hBar);
}
#endif


après, il te suffit de faire Bar1.Hide(false/true); (Bar1 est déclaré dans le cas présent "progressbar Bar1;"). T'as plus qu'à adapter!

Voilà! J'espère que c'est ce que tu voulais!

See you,Malik7934
jeudi 23 septembre 2004 à 10:11:51 | Re : modif d'info d'une fenètre avant sa création.

hdaniel


Je pense que mon problème est plus simple que ce que tu penses.

j'ai une fenêtre ou je collecte des informations.
à la fin de cette collecte, je crée une fenêtre dlgModifConf

dlgModifConf.DoModal()

dans la fenêtre dlgModifConf je veux imposer certains choix au début (en fonction des infos collectés avant).

notamment faire apparaître ou non un bouton.

donc avec un bool je peux sauver mon info tout a fais ok.
mais ou je met mon ShowWindow?

hdaniel
jeudi 23 septembre 2004 à 10:26:37 | Re : modif d'info d'une fenètre avant sa création.

malik7934

Ben alors je reviens sur ce que je disais:

Variable global:
BOOL setBoutonVisible; /* pour avoir ton fameux bouton*/
case TRAITEMENT: /* en supposant que tu as un bouton "Traitement des infos" qu'on clique lorsque différentes radio sont cochées par exemples*/
if(SendMessage(GetDlgItem(hWnd,IDC_RADIO),BM_GETCHECK,0,0) == BST_CHECKED){/* imaginons que IDC_RADIO implique une condition */
EndDialog(hWnd,0);/*je ferme la fenêtre courante*/
setBoutonVisible = TRUE; /*je dis que je veux afficher mon bouton en plus*/
return (int)DialogBox(hInst,MAKEINTRESOURCE(IDD_FENETRE2),NULL,fenetreDlg); }/*et ouvre une nouvelle fenêtre, identique à la précédente (un clône), mais qui a les spécificités demandées par IDC_RADIO en plus*/

et dans BOOL CALLBACK fenetre(...) (qui est la même fonction qu'avait appelé ton programme et o`on à coché le radio!), je fais
if (setVisible) {
hCtrl = GetDlgItem(hWnd, IDC_BOUTON_A_AFFICHER);
showWindow(hCtrl, SW_SHOW);
}

... on y est? Je sais pas si ma méthode est "propre" mais elle a l'avantage de fonctionner ;o)
jeudi 23 septembre 2004 à 14:59:33 | Re : modif d'info d'une fenètre avant sa création.

hdaniel


J'ai bien du mal avec ton style de programmation. je pense que tu est un cran au dessus.

moi je crée mes boites de dialogue avec editeur microsoft VC6 et je fais un DoModal
et je ne me sens pas capable de passer a cette programmation cela risque de me poser plein de problème. je suis pas a l'aise avec les handles de fenêtre etc...
hdaniel

1 2

Cette discussion est classée dans : création, fenêtre, info, fenètre, modif


Répondre à ce message

Sujets en rapport avec ce message

Hook sur création de fenêtre du système [ par r144 ] Bonjour, voila j'ai ecrit un petit prog avec un dll en prenant appui sur le source de BruNews(que je remercie) qui capture la création d'une fenêtre d Fin de création d'une fenêtre... [ par Zart ] Bonjour, Y a t il une méthode permettant de savoir si une fenêtre est complètement chargée ? Le truc serais que ma fenêtre se lance... Ensuite quand création de fenêtre enfant [ par polykos ] quelqu'un saurait me dire pour quoi lorsque avec CreateWindow, j'indique en tant que style WS_CHILD, j'obtiens une feêtre enfant mais inactive ???!! Appeler une fonction à la création d'une fenêtre [ par LuckyNut ] Salut la cavalerie !Jai besoin d'appeler une fonction une fois qu'une fenetre (CDialog ou CMainFrame) est affichée à l'écran et pas avant. Comment c'e pb de création de fenêtre [ par starjab ] bonjour , voilà un extrait de mon programme ://On crée nos différents boutons        CreateWindowEx(0,            &nbsp Problème avec la création de ToolsBar. [ par Superweight ] Bonjour à tous, Récupération des pixels d'une fenêtre cachée [ par sebcmoa ] Bonjour, Je vous expose mon problème : - J'utilise la fonction glReadPixels sur une fenêtre invisible. Cela me retourne bien les données...mais problè Création fenêtre en MFC [ par romauto750 ] Bonjour à tous,Voici une petite question qui me pose bien des problèmes.Je suis en MFC.J'aimerai créer une fenêtre "temporaire" qui servirai à simplem Modifier contenu fenêtre [ par SpreadFirefox ] Bonjour à tous,Je suis nouveau dans le développement orienté objet, veuillez donc m'excuser pour les fautes grossières que je risque d'avoir faite ou info CPU [ par BastienL21 ] Bonjour à tous,Je suis actuellement en train de développer une application console en C.Je souhaiterais savoir comment il faut faire pour récupérer (l


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 : 0,983 sec (4)

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