Trouver une ressource (Nouvelle version du moteur, plus rapide & pertinent, essayez le !)
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 de la même categorie
Commentaires
|
CalendriCode
| | | L | M | M | J | V | S | D |
| | | | | 1 | 2 | 3 |
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
|
|