Problème de création d'une progressBar [Résolu]

Signaler
Messages postés
268
Date d'inscription
vendredi 30 avril 2004
Statut
Membre
Dernière intervention
13 mai 2013
-
Messages postés
268
Date d'inscription
vendredi 30 avril 2004
Statut
Membre
Dernière intervention
13 mai 2013
-
Bonjour, ayant eu des problèmes sur un programme pour faire avancer une progressbar j'ai voulu faire un programme de test, mais problème dans celui ci je n'arrive pas à créer la barre de progression.
Le code d'erreur est 1407 (impossible de trouver la classe de fenetre).
Je ne vois pas ce que j'aurais pu oublier.
Mon code

#include <windows.h>
#include <stdio.h>

#include "main.h"
#include <commctrl.h>

/* Declare Windows procedure */
LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);

/* Make the class name into a global variable */
char szClassName[ ] = "WindowsApp";

int WINAPI WinMain (HINSTANCE hThisInstance,
HINSTANCE hPrevInstance,
LPSTR lpszArgument,
int nFunsterStil)

{

MSG messages; /* Here messages to the application are saved */
WNDCLASSEX wincl; /* Data structure for the windowclass */

/* The Window structure */
wincl.hInstance = hThisInstance;
wincl.lpszClassName = szClassName;
wincl.lpfnWndProc = WindowProcedure; /* This function is called by windows */
wincl.style = CS_DBLCLKS; /* Catch double-clicks */
wincl.cbSize = sizeof (WNDCLASSEX);

/* Use default icon and mouse-pointer */
wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
wincl.lpszMenuName = NULL; /* No menu */
wincl.cbClsExtra = 0; /* No extra bytes after the window class */
wincl.cbWndExtra = 0; /* structure or the window instance */
/* Use Windows's default color as the background of the window */
wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;

/* Register the window class, and if it fails quit the program */
if (!RegisterClassEx (&wincl))
return 0;

/* The class is registered, let's create the program*/
Fenetre = CreateWindowEx (
0, /* Extended possibilites for variation */
szClassName, /* Classname */
"Windows App", /* Title Text */
WS_OVERLAPPEDWINDOW, /* default window */
CW_USEDEFAULT, /* Windows decides the position */
CW_USEDEFAULT, /* where the window ends up on the screen */
544, /* The programs width */
375, /* and height in pixels */
HWND_DESKTOP, /* The window is a child-window to desktop */
NULL, /* No menu */
hThisInstance, /* Program Instance handler */
NULL /* No Window Creation data */
);

Label1 = CreateWindowEx(0, "STATIC", "text", WS_VISIBLE|WS_CHILD, 5, 2,
52, 13, Fenetre, (HMENU)ID_LABEL1, hThisInstance, NULL);

Boutton1 = CreateWindowEx(0,"BUTTON","Valider", WS_VISIBLE|WS_CHILD|BS_PUSHBUTTON|BS_NOTIFY|BS_TEXT, 10,15,70,25,Fenetre,
(HMENU)ID_BOUTTON1, hThisInstance,NULL);

if ((ProgressbarCreateWindowEx(CS_DBLCLKS, PROGRESS_CLASS, NULL, WS_CHILD | WS_VISIBLE | PBS_SMOOTH , 2, 350, 313, 20, Fenetre,(HMENU)ID_PROGRESSBAR, hThisInstance, NULL)) NULL)
{
DWORD err = GetLastError();
char code[256];
sprintf(code,"%i",err);
MessageBox(Fenetre,code,"Erreur",MB_OK);
}
....

7 réponses

Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
2
tu as oublié d'appeler <name>InitCommonControlsEx.</name><link href="../../../css/ie4.css" type="text/css" rel="stylesheet" /><!-- @ --><link href="../../../css/inetsdk.css" type="text/css" rel="stylesheet" /><!-- @ --><style type="text/css"><![CDATA[
PRE.clsCode { font-size:110%; }
PRE.clsSyntax { font-size:100%; }
TD DIV.clsBeta { display:none;}

A:link { color:#0000ff; text-decoration:underline;}
A:visited { color:#0000ff; text-decoration:underline;}
A:hover { color:#3366ff; text-decoration:underline;}
MSHelp\:link {
color:#0000ff;
text-decoration:underline;
cursor:hand;
hoverColor:#3366ff;
filterString: ;}
]]></style><link href="ms-help://Hx/HxRuntime/HxLink.css" type="text/css" rel="stylesheet" />

<xml id="_topicdata" pagetype="function" proj="platsdk" name="InitCommonControlsEx" pubpath="/platform/commctls/common/functions/initcommoncontrolsex.htm"><!-- topic data --><root></root></xml>

<xml xmlns=""><mshelp:keyword index="A" term="_win32_InitCommonControlsEx"></mshelp:keyword><mshelp:keyword index="A" term="_win32_InitCommonControlsEx_cpp"></mshelp:keyword><mshelp:toctitle title="InitCommonControlsEx Function"></mshelp:toctitle><mshelp:rltitle title="InitCommonControlsEx Function ()"></mshelp:rltitle><mshelp:keyword index="F" term="InitCommonControlsEx"></mshelp:keyword><mshelp:keyword index="K" term="InitCommonControlsEx"></mshelp:keyword><mshelp:attr name="TopicType" value="kbRef"></mshelp:attr><mshelp:attr name="Locale" value="kbEnglish"></mshelp:attr><mshelp:attr name="DevLang" value="C++"></mshelp:attr><mshelp:attr name="Technology" value="Controls"></mshelp:attr><mshelp:attr name="TechnologyVers" value="kbControls"></mshelp:attr><mshelp:attr name="DocSet" value="WCSDK"></mshelp:attr><mshelp:attr name="DocSet" value="LHSDK"></mshelp:attr><mshelp:attr name="DocSet" value="PSDK"></mshelp:attr><mshelp:attr name="CommunityContent" value="1"></mshelp:attr><mshelp:attr name="TargetOS" value="Windows"></mshelp:attr><mshelp:attr name="TopicType" value="apiref"></mshelp:attr><mshelp:attr name="APIName" value="InitCommonControlsEx"></mshelp:attr><mshelp:attr name="APIType" value="DllExport"></mshelp:attr><mshelp:attr name="APILocation" value="comctl32.dll"></mshelp:attr><mshelp:attr name="TopicType" value="kbSyntax"></mshelp:attr></xml>
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
13
Salut,
Mets InitCommonControls() ou InitCommonControlsEx() au début de ton WinMain. Tu peux également charger dynamiquement comctl32.dll en mettant au début du WinMain:
HINSTANCE hCmLib= LoadLibrary("comctl32.dll");
puis à sa fin:
FreeLibrary(hCmLib);
Messages postés
123
Date d'inscription
samedi 14 juillet 2007
Statut
Membre
Dernière intervention
29 mars 2009
1
Comment poser encore la question sur InitCommonControls() ?

Ca va faire 14 ans qu'on la rabache toutes les semaines.

Manifestement, tous les noobs ne font plus le moindre aucun effort pour chercher quoi que ce soit :-(
Messages postés
268
Date d'inscription
vendredi 30 avril 2004
Statut
Membre
Dernière intervention
13 mai 2013
2
Merci, cependant il me reste un "mystère", dans mon prog je n'ai pas InitCommonControl, mais vu que c'est un prog réseau c'est "inclu" avec la librairie libws2_32.
Merci pour votre aide je galère un peu j'étais un habitué de la prog en VCL (équivalant du MFC, avec borland) de plus je suis passé a dev.

jeffy > Ta réponse ne sert a rien, je suis loin d'être quelqu'un qui ne fais pas de recherche sur msdn avant de poser une question et pas un noob non plus (mais ça pour le savoir faudrait regarder le profil avant)
Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
2
jeffy131> Très constructive ta réponse.... Vraiment! La prochaine fois que tu poses une question je me ferais un plaisirs de t'envoyer petre en te traitant de noob. Si ca te fais tant chié que ca de voir de telles questions, passe donc ton chemin et ne perd pas ton temps a répondre!

Shell
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
13
#{[|#{[\^@`|[, je viens de tomber sur ça ici dans la msdn :


<hr />

Under Comctl32.dll version 5.x, only Microsoft Windows 95 classes (ICC_WIN95_CLASSES) can be registered through InitCommonControls. Programs which require additional common control classes must use the InitCommonControlsEx function.Under Comctl32.dll version 6.0 and later, InitCommonControls does nothing. Applications must explicitly register all common controls through InitCommonControlsEx.

<hr />5.x -> 2000/XP et 6->Vista si la version de la dll est cohérente avec la version de Windows.

Tu es sous Vista tibob51 ?

Je dois mal comprendre : ça me paraît impossible qu'ils aient arrêter de faire fonctionner InitCommonControls sous Vista : il doit y avoir un max d'application qui s'en serve.
Messages postés
268
Date d'inscription
vendredi 30 avril 2004
Statut
Membre
Dernière intervention
13 mai 2013
2
DeAtHCrAsH> Merci du soutient ça fait plaisir ;)

rt15> Non je ne suis pas sous vista je suis sous xp et j'utilise InitCommonControl
par contre je comprend la même chose que toi, c'est vrai que ça me semble bizarre il doit y avoir un max d'incompatibilité alors?!
Je sais pas si quelqu'un pourra nous en dire plus