Probleme API, je ne comprend toujours pas:(

JackosKing Messages postés 168 Date d'inscription mardi 31 décembre 2002 Statut Membre Dernière intervention 21 avril 2005 - 23 juin 2003 à 14:27
JackosKing Messages postés 168 Date d'inscription mardi 31 décembre 2002 Statut Membre Dernière intervention 21 avril 2005 - 23 juin 2003 à 16:05
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

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
23 juin 2003 à 14:37
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...
0
JackosKing Messages postés 168 Date d'inscription mardi 31 décembre 2002 Statut Membre Dernière intervention 21 avril 2005
23 juin 2003 à 14:55
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
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
23 juin 2003 à 15:47
mets WS_VISIBLE dans les styles et non dans les styles etendus.
BruNews, ciao...
0
JackosKing Messages postés 168 Date d'inscription mardi 31 décembre 2002 Statut Membre Dernière intervention 21 avril 2005
23 juin 2003 à 16:05
bon j'ai retrouvé mon erreur, j'etait vraiment endormi:)
ct le paramettre VISIBLE qui n'etait pas un EX paramettre:)
JackosKing For EvEr
0
Rejoignez-nous