Problème de progress bar sous vista - C++ - Programmation
MarshPosté le 25-03-2009 à 13:31:06
Bonjour,
J'ai un gros souci : - j'ai réalisé une DLL en C++ avec Visual Studio 2005 qui est appelée depuis Excel. - pour afficher l'avancement des calculs, j'ai mis en place une progress bar. Cette barre de progression fonctionne parfaitement sous Windows 2000 mais sous Vista, la barre se fige au bout de quelques secondes et Vista me met "ne répond pas" dans le titre de cette barre de progression. La DLL continue ses calculs et la barre de progression est détruite à la fin mais l'avancement est bloqué.
Avez-vous une idée car j'ai épuisé mes maigres compétences sur ce sujet ?
Le code de création de ma progress bar :
// Initialisation des common controls INITCOMMONCONTROLSEX InitCtrlEx; InitCtrlEx.dwSize = sizeof( INITCOMMONCONTROLSEX ); InitCtrlEx.dwICC = ICC_PROGRESS_CLASS; InitCommonControlsEx( &InitCtrlEx );
hwndPB = CreateWindowEx( WS_EX_DLGMODALFRAME , PROGRESS_CLASS , ( LPTSTR )i_titre.c_str() , WS_CAPTION | WS_POPUPWINDOW | WS_VISIBLE | PBS_SMOOTH , 400, 250, 350, 50 , 0, 0, s_instance, 0 ); // s_instance est fourni à ma DLL par Windows
// Initialise les bornes et le step de la progress bar SendMessage( hwndPB, PBM_SETRANGE, 0, MAKELPARAM( 0, 10000)); SendMessage( hwndPB, PBM_SETSTEP, ( WPARAM )1, 0);
Marsh Posté le 25-03-2009 à 13:31:06
Bonjour,
J'ai un gros souci :
- j'ai réalisé une DLL en C++ avec Visual Studio 2005 qui est appelée depuis Excel.
- pour afficher l'avancement des calculs, j'ai mis en place une progress bar. Cette barre de progression fonctionne parfaitement sous Windows 2000 mais sous Vista, la barre se fige au bout de quelques secondes et Vista me met "ne répond pas" dans le titre de cette barre de progression. La DLL continue ses calculs et la barre de progression est détruite à la fin mais l'avancement est bloqué.
Avez-vous une idée car j'ai épuisé mes maigres compétences sur ce sujet ?
Le code de création de ma progress bar :
// Initialisation des common controls
INITCOMMONCONTROLSEX InitCtrlEx;
InitCtrlEx.dwSize = sizeof( INITCOMMONCONTROLSEX );
InitCtrlEx.dwICC = ICC_PROGRESS_CLASS;
InitCommonControlsEx( &InitCtrlEx );
hwndPB = CreateWindowEx( WS_EX_DLGMODALFRAME
, PROGRESS_CLASS
, ( LPTSTR )i_titre.c_str()
, WS_CAPTION | WS_POPUPWINDOW | WS_VISIBLE | PBS_SMOOTH
, 400, 250, 350, 50
, 0, 0, s_instance, 0 ); // s_instance est fourni à ma DLL par Windows
// Initialise les bornes et le step de la progress bar
SendMessage( hwndPB, PBM_SETRANGE, 0, MAKELPARAM( 0, 10000));
SendMessage( hwndPB, PBM_SETSTEP, ( WPARAM )1, 0);
Le code d'avancement :
SendMessage( hwndPB, PBM_SETPOS, avancement, 0 );
D'avance merci