Merci,
J'ai tout de même cherché une petite heure pourquoi mon create ne marchait pas lol
Il faut en effet un
ShowWindow(SW_SHOW)
Par contre autre question pour le même truc :
J'ouvre donc ma fenêtre. Cette fenêtre (DialogProgress) comprend le pourcentage d'avancement de qqch (avec un affichage texte et une barre de progress).
Maintenant j'ai une fonction qui est longue a s'exécuter et qui appel donc une callback pour pouvoir donner l'état d'avancement.
Cette Callback met à jour un champ de mon DialogProgress (ca marche) mais j'ai juste ce champ de visible (tout le reste de ma fenêtre est grise comme figée)
Savez vous pourquoi ? Je dois faire un rafraichissement complet de ma fenêtre à chaque appel ?
Un peut de code pour une explication peut-être plus claire :
En globale :
Include 'ProgressDlg.h'
ProgressDlg DialogProgress ;
Dans le même fichier : (la fonction call back qui est bien appelée et qui marche très bien)
BOOL WINAPI ProgressFunc(UINT Percent,CINEHANDLE CH)
{
Progress.Update(Percent);
return TRUE;
}
Toujours dans le même fichier dans le code :
DialogProgress.Create(IDD_Progress,this);
DialogProgress.ShowWindow(SW_SHOW);
StructDeSave->SaveCine(ProgressFunc);
DialogProgress.OnCancel();
Dans ProgresDlg.h :
class
ProgressDlg : public CDialog
{
DECLARE_DYNAMIC(ProgressDlg)
public
:
ProgressDlg(CWnd* pParent = NULL); // standard constructor
virtual ~ProgressDlg();
// Dialog Data
enum { IDD = IDD_Progress };
protected
:
virtual
void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
DECLARE_MESSAGE_MAP()
public
:
void Update(UINT Percent);
void OnCancel(void);
};
Et dans ProgressDlg.cpp
// ProgressDlg.cpp : implementation file
//
#include
"stdafx.h"
#include
"RdvPhantom.h"
#include
"ProgressDlg.h"
// ProgressDlg dialog
IMPLEMENT_DYNAMIC(ProgressDlg, CDialog)
ProgressDlg::ProgressDlg(CWnd* pParent /*=NULL*/)
: CDialog(ProgressDlg::IDD, pParent)
{
}
ProgressDlg::~ProgressDlg()
{
}
void
ProgressDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(ProgressDlg, CDialog)
END_MESSAGE_MAP()
void
ProgressDlg::Update(UINT Percent)
{
CString CStringTemps;
CStringTemps.Format("%u%",Percent);
SetDlgItemText(IDC_Value,CStringTemps);
}
void
ProgressDlg::OnCancel()
{
CDialog::OnCancel();
}
Une idée de pourquoi ca fige? Et une solution surtout (si possible) lol
Merci!!!
---Perig---
Pour vous servir 
Et parfois en galère 
Souvent même 