Probleme API, je ne comprend toujours pas:(

Signaler
Messages postés
168
Date d'inscription
mardi 31 décembre 2002
Statut
Membre
Dernière intervention
21 avril 2005
-
Messages postés
168
Date d'inscription
mardi 31 décembre 2002
Statut
Membre
Dernière intervention
21 avril 2005
-
Bon j'ai un probleme avec mon debut de programme, je voulais utiliser les api, mais ca ne marche pas, je ne vois pas la fenetre apparetre:(
voilà la source:

#define _WIN32_WINNT 0x500

#include "stdafx.h"
#include <windows.h>
#include <stdlib.h>
#include "Twiny.h"

long WINAPI WndProc (HWND hwnd, UINT message, UINT wParam, LONG lParam)
{
return DefWindowProc(hwnd, message, wParam, lParam);
}

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
              LPSTR lpCmdLine, int nShowCmd)
{
MSG msg;
Twiny a;
WNDCLASSEX winclassex;

winclassex.cbSize = sizeof(winclassex);
winclassex.style = CS_BYTEALIGNCLIENT;
winclassex.lpfnWndProc = WndProc;
winclassex.cbClsExtra=0L;
winclassex.cbWndExtra=0L;
winclassex.hInstance=hInstance;
winclassex.hIcon=LoadIcon(NULL,IDI_APPLICATION);
winclassex.hCursor=LoadCursor(NULL,IDC_ARROW);
winclassex.hbrBackground=(HBRUSH) (COLOR_BTNFACE+1);
winclassex.lpszMenuName=NULL;
winclassex.lpszClassName="MyWndClassEx";
winclassex.hIconSm = LoadIcon( NULL, IDI_APPLICATION );

RegisterClassEx(&winclassex);

a.CreatTwiny("essai",hInstance);

ShowWindow(a.hWnd, nShowCmd);
UpdateWindow(a.hWnd);

while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);   // Convertir message
DispatchMessage(&msg);   // Envoyer message à la fonction de message
}

return 0;
}


avec la classe:
class Twiny  
{
public:
Twiny();
virtual ~Twiny();
CreatTwiny( char *pStrIniFile, HINSTANCE hInstance );
HWND hWnd;
private:
short Height;
short Width;
short X;
short Y;

};
Twiny::Twiny() {}

Twiny::~Twiny() {}

Twiny::CreatTwiny( char *pStrIniFile, HINSTANCE hInstance )
{
char IniPath[MAX_PATH];
char PlugPath[MAX_PATH];
GetCurrentDirectory( MAX_PATH, IniPath);

sprintf( PlugPath, "%s\\Datas\\%s.ini", IniPath, pStrIniFile);

#define EXTRACT_NBR( VAR ) GetPrivateProfileString("TWINY","VAR","",IniPath,MAX_PATH,PlugPath ); VAR = atoi(PlugPath);
EXTRACT_NBR( X )
EXTRACT_NBR( Y )
EXTRACT_NBR( Width )
EXTRACT_NBR( Height )
#undef EXTRACT_NBR

hWnd = CreateWindowEx(	WS_EX_TOPMOST  | WS_VISIBLE,"MyWndClassEx"," ", CW_USEDEFAULT ,
100,
100,
100,
100,
NULL,
NULL,
hInstance,
NULL);
}


Voilà dsl de posser un source comme celà, mais je ne voit pas où est l'erreur:(

JackosKing For EvEr

4 réponses

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
Je ne voudrais pas paraitre 'chagrin' mais quel est le but d'aller alourdir API win32 dans une classe ? Vois que les params que tu memorises dans ta classe te sont passes par le systeme si besoin dans ta wndproc dans wParam et lParam.
BruNews, ciao...
Messages postés
168
Date d'inscription
mardi 31 décembre 2002
Statut
Membre
Dernière intervention
21 avril 2005

En fait c'est pour gerer plusieurs fenetres qui vont supportées des plugins, et ce sont les classes qui vont gerer le support des plugins.. ce n'est que le debt du prog que j'ai simplifié.
Pour les hWnd, ils sont mémorisé, car j'en aurait besoin pour les plugins.

Mais la question n'est pas encore l:(, pkoir ma fenetre ne s'affiche pas? la je ne comprend vraiment pas:(

JackosKing For EvEr
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
mets WS_VISIBLE dans les styles et non dans les styles etendus.
BruNews, ciao...
Messages postés
168
Date d'inscription
mardi 31 décembre 2002
Statut
Membre
Dernière intervention
21 avril 2005

bon j'ai retrouvé mon erreur, j'etait vraiment endormi:)
ct le paramettre VISIBLE qui n'etait pas un EX paramettre:)
JackosKing For EvEr