juju116
Messages postés23Date d'inscriptionsamedi 14 mars 2009StatutMembreDernière intervention 1 février 2010
-
29 avril 2009 à 14:36
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 2014
-
8 mai 2009 à 21:50
voilà j'ai créer ma listview j'ai en fin un truc de moi meme, mais bon j'avais de l'aide quand meme seulement ya un hic donc si l'on pouvait m'aider, j'ai beau essayer de cherché je trouve pas :(
erreurs:
C:\Documents and Settings\julian\Bureau\projet\prog\nouveau programme\main.cpp:48: error: `LPNMLVGETINFOTIPA' was not declared in this scope
C:\Documents and Settings\julian\Bureau\projet\prog\nouveau programme\main.cpp:48: error: expected `;' before "nmInfoTip"
C:\Documents and Settings\julian\Bureau\projet\prog\nouveau programme\main.cpp:52: error: `nmInfoTip' was not declared in this scope
C:\Documents and Settings\julian\Bureau\projet\prog\nouveau programme\main.cpp:52: error: expected `;' before "lParam"
C:\Documents and Settings\julian\Bureau\projet\prog\nouveau programme\main.cpp:67: error: `hWnd' was not declared in this scope
C:\Documents and Settings\julian\Bureau\projet\prog\nouveau programme\main.cpp: In function `int createImgList()':
C:\Documents and Settings\julian\Bureau\projet\prog\nouveau programme\main.cpp:83: error: a function-definition is not allowed here before '{' token
C:\Documents and Settings\julian\Bureau\projet\prog\nouveau programme\main.cpp:116: error: a function-definition is not allowed here before '{' token
C:\Documents and Settings\julian\Bureau\projet\prog\nouveau programme\main.cpp:140: error: a function-definition is not allowed here before '{' token
C:\Documents and Settings\julian\Bureau\projet\prog\nouveau programme\main.cpp:160: error: expected `}' at end of input
Process terminated with status 1 (0 minutes, 0 seconds)
9 errors, 0 warnings
/*traitement des messages*/
int CALLBACK windowsprocedure(HWND hwnd, UINT nMsg, WPARAM wParam, LPARAM lParam)
{
/*Info sur les tailles min et max de la fenêtre*/
MINMAXINFO *lpMinMaxInfo;
/*Taille de la zone cliente*/
RECT clientRect;
/*retour de la fonction*/
long nResult;
nResult = 0;
/*Pour savoir si le message est traité*/
int bHandled;
bHandled = 0;
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 201413 8 mai 2009 à 21:50
Mais c'est mon petit juju116 !
Au fait rien à voir, mais tu aurais pas de la famille qui fait aussi de l'info sur Annecy (Rapport à ton nom qui était dans l'adresse mail que tu m'a filé par MP) ?
Outre les remarques judicieuses de aardman, il reste un petit problème.
En effet, si tu regardes le début de mon code :
<hr size="2" width="100%" />#ifdef UNICODE
#define _UNICODE
#endif /* UNICODE */
/* Requis pour LVN_GETINFOTIP */
#define _WIN32_IE 0x0400
#include <windows.h>
#include <tchar.h>
#include <commctrl.h><hr size="2" width="100%" />Il se trouve que les lignes ci-dessus ne sont pas tout à fait ordonnées par hasard. Bon la partie unicode me permet juste de me faciliter le passage en MBCS/UNICODE en me permettant d'avoir qu'un flag à changer. UNICODE est utilisé dans windows.h, et _UNICODE dans tchar.h.
Ensuite, un jolie commentaire (En rapport avec GETINFOTIP, tiens, curieux), et finalement les includes.
Mais à quoi sert donc ce define ? En fait, il me permet de dire que je part du principe que les PCs où mon application va tourner incluront forcément Internet Explorer en version 4 minimum. En effet, pour bénéficier de LVN_GETINFOTIP,il est précisé dans la msdn que IE 4 est requis.
Sachant cela, commctrl.h va pouvoir me fournir plus de déclarations, toutes celles disponibles quand IE 4 est installé. En effet, quelque part dans commctrl.h, on trouve :
<hr size="2" width="100%" />#if (_WIN32_IE >= 0x0400)
typedef struct tagNMLVGETINFOTIPA
{
NMHDR hdr;
DWORD dwFlags;
LPSTR pszText;
int cchTextMax;
int iItem;
int iSubItem;
LPARAM lParam;
} NMLVGETINFOTIPA, *LPNMLVGETINFOTIPA;
typedef struct tagNMLVGETINFOTIPW
{
NMHDR hdr;
DWORD dwFlags;
LPWSTR pszText;
int cchTextMax;
int iItem;
int iSubItem;
LPARAM lParam;
} NMLVGETINFOTIPW, *LPNMLVGETINFOTIPW;
#endif /* _WIN32_IE >= 0x0400 */
<hr size="2" width="100%" />Pourquoi cela fonctionne-t-il avec mon code et pas avec le tien ?
Car tu inclus commctrl.h avant le define. Donc lorsque le préprocesseur préprocesse commctrl.h, _WIN32_IE n'est pas encore définit, donc le code de LPNMLVGETINFOTIPA est "oublié". Et donc quand tu t'en sers dans ton code, il n'est pas défini.
Bilan il faut que tu inverses ton define et tes includes.