La lib pour fenetre win32

Contenu du snippet

c une lib qui facilite la mise de boutons, edit et static ainsi un gettext() et dotre
vou pouvez lameliorez

Source / Exemple :


#include <windows.h>

#define Label_ID   100
#define Text_ID    200
#define Command_ID 300

void CreateStatic(int, char*, int, int, int, int,HWND);
void CreateEdit(int, char*, int, int, int, int, bool, bool, bool, bool,HWND);
void CreateCommand(int, char*, int, int, int, int,HWND);
char *GetText(HWND);
void SetFont(HWND);

HINSTANCE hInst;
HWND label[100], edit[100], command[100];

void CreateStatic(int Index, char* Text, int Left, int Top, int Width, int Height,HWND fen)
{
int ID = Label_ID + Index;
label[Index] = CreateWindowEx(0, "STATIC", Text, WS_VISIBLE|WS_CHILD,Left, Top, Width, Height, fen, (HMENU)ID, hInst, NULL);
SetFont(label[Index]);
}

void CreateEdit(int Index, char* Text, int Left, int Top, int Width, int Height, bool MultiLine, bool HScroll, bool VScroll, bool Locked,HWND fen)
{
int ID = Text_ID + Index;
edit[Index] = CreateWindowEx(WS_EX_OVERLAPPEDWINDOW, "EDIT", Text, WS_VISIBLE|WS_CHILD|ES_WANTRETURN|ES_LEFT|(MultiLine ? ES_MULTILINE|ES_AUTOVSCROLL : 0)|(HScroll ? WS_HSCROLL|ES_AUTOHSCROLL : 0)|(VScroll ? WS_VSCROLL : 0)|(Locked ? ES_READONLY : 0), Left, Top, Width, Height, fen, (HMENU)ID, hInst, NULL);
SetFont(edit[Index]);
}

void CreateCommand(int Index, char* Text, int Left, int Top, int Width, int Height,HWND fen)
{
int ID = Command_ID + Index;
command[Index] = CreateWindowEx(0, "BUTTON", Text, WS_VISIBLE|WS_CHILD|BS_PUSHBUTTON|BS_NOTIFY|BS_TEXT,Left, Top, Width, Height, fen, (HMENU)ID, hInst, NULL);
SetFont(command[Index]);
}

void SetFont(HWND hWnd)
{
SendMessage(hWnd, WM_SETFONT, (WPARAM)GetStockObject(DEFAULT_GUI_FONT), MAKELPARAM(TRUE, 0));
}

char *GetText(HWND hWnd)
{
char *Text = "";
unsigned int TextLen = 0;
TextLen = GetWindowTextLength(hWnd);
if(TextLen){
  Text = new char[(TextLen + 2)];
  TextLen = GetWindowText(hWnd, Text, (TextLen + 1));
}
return Text;
}

Conclusion :


pour lutiliser, voici un exemple :

#include <fenetre.h>

#define Command_ID 300

LRESULT CALLBACK WinProc(HWND, UINT, WPARAM, LPARAM);
void Command_Click(int);

int WINAPI WinMain(HINSTANCE instance1, HINSTANCE instance2, LPSTR lps, int nShow)
{
MSG message;
WNDCLASSEX fen;

// Création de la classe
fen.hInstance = instance1; // Instance
fen.lpszClassName = "fenetre"; // Nom de la classe
fen.lpfnWndProc = WinProc; // Adresse de la procédure
fen.style = CS_DBLCLKS; // Style
fen.cbSize = sizeof(WNDCLASSEX); // Taille
fen.hIcon = LoadIcon(instance1,"MAIN"); // Grande icone
fen.hIconSm = LoadIcon(NULL,NULL); // Petite icone
fen.hCursor = LoadCursor(NULL, IDC_ARROW); // Curseur
fen.lpszMenuName = NULL; // Menu
fen.cbClsExtra = 0;
fen.cbWndExtra = 0;
fen.hbrBackground = (HBRUSH)(COLOR_3DFACE+1);
if(!RegisterClassEx(&fen)) return 0;

HWND fenetre = CreateWindowEx(0,"fenetre","Exemple de fenetre",WS_POPUP|WS_CAPTION|WS_SYSMENU|WS_VISIBLE|WS_MINIMIZEBOX,220,20,400,350,HWND_DESKTOP,NULL,hInst,NULL);
if(fenetre == NULL) return 0;

CreateStatic(1,"Un static",50,10,60,21,fenetre);
CreateEdit(2,"Un edit",50,40,60,21, 0,0,0,0,fenetre);
CreateCommand(3,"Un bouton",50,70,60,21,fenetre);

ShowWindow(fenetre, SW_SHOW);
UpdateWindow(fenetre);

while (GetMessage(&message, NULL, 0, 0))
{
TranslateMessage(&message);
DispatchMessage(&message);
}

return message.wParam;
}

LRESULT CALLBACK WinProc(HWND fenetre2, UINT message2, WPARAM wParam, LPARAM lParam)
{
switch (message2)
{
case WM_DESTROY:
PostQuitMessage(0);
break;

case WM_CLOSE:
DestroyWindow(fenetre2);
break;

case WM_COMMAND:
if(HIWORD(wParam) == BN_CLICKED)Command_Click(LOWORD(wParam) - Command_ID);
break;

default:
return DefWindowProc(fenetre2,message2,wParam,lParam);
break;
}
return 0;
}

void Command_Click(int Index)
{
switch(Index)
{
case 1:
break;
}
}

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.