|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
LA LIB POUR FENETRE WIN32
Description
c une lib qui facilite la mise de boutons, edit et static ainsi un gettext() et dotre
vou pouvez lameliorez
Source
- #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;
- }
#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;
}
}
Sources du même auteur
Sources de la même categorie
Commentaires et avis
|
Comparez les prix Nouvelle version
|