#include "stdafx.h" #include ... //les autres fichiers pour notamment "parser" le code avec les composants HWND hWnd; HWND hBtn[20]; HWND hEdit[20]; HWND hLib[20]; HWND hTab[20]; HBRUSH couleurFond[20]; COLORREF couleurFondTexte[20]; COLORREF couleurTexte[20]; HWND boutonPourFocus; int ligneTableFocus= 0; LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { HDC hdc; int wmId, wmEvent; PAINTSTRUCT ps; // WCHAR *Text; switch (message) { case WM_CTLCOLOREDIT://Dessin du contrôle EDIT //ces CTLCOLOR qui suivent fonctionnent { for(int i =0;i<GetNombreComposant();i++) { if (((HWND)lParam==hEdit[i])) { SetTextColor((HDC)wParam,couleurTexte[i]); SetBkColor((HDC)wParam,couleurFondTexte[i]); return (BOOL) couleurFond[i]; } } return 0; } case WM_CTLCOLORSTATIC://Dessin du contrôle LIB { for(int i=0;i<GetNombreComposant();i++) { if (((HWND)lParam==hLib[i])) { SetTextColor((HDC)wParam,couleurTexte[i]); SetBkColor((HDC)wParam,couleurFondTexte[i]); return (BOOL) couleurFond[i]; } if (((HWND)lParam==hTab[i])) { SetTextColor((HDC)wParam,couleurTexte[i]); SetBkColor((HDC)wParam,couleurFondTexte[i]); return (BOOL) couleurFond[i]; } } return 0; } case WM_CTLCOLORLISTBOX://Dessin du contrôle TAB { for(int i=0;i<GetNombreComposant();i++) { if ((HWND)lParam==hTab[i]) { SetTextColor((HDC)wParam,couleurTexte[i]); SetBkColor((HDC)wParam,couleurFondTexte[i]); return (BOOL) couleurFond[i]; } } return 0; } case WM_CTLCOLORBTN://Dessin du contrôle BTN { for(int i=0;i<GetNombreComposant();i++) { if (((HWND)lParam==hBtn[i]))// && hBtn[i]!=NULL) { SetTextColor((HDC)wParam,couleurTexte[i]); SetBkColor((HDC)wParam,couleurFondTexte[i]); return (BOOL) couleurFond[i]; } } return 0; } case WM_COMMAND: wmId = LOWORD(wParam); wmEvent = HIWORD(wParam); switch (wmId) { case ID_BUTTON: // code a implementer break; default: return DefWindowProc(hWnd, message, wParam, lParam); } break; case WM_CREATE: break; case WM_PAINT: RECT rt; hdc = BeginPaint(hWnd, &ps); GetClientRect(hWnd, &rt); FillRect(hdc, &rt, (HBRUSH) (1)); EndPaint(hWnd, &ps); break; case WM_DESTROY: DestroyWindow(hWnd); PostQuitMessage(0); break; default: return DefWindowProc(hWnd, message, wParam, lParam); } // } return 0; } ATOM MyRegisterClass(HINSTANCE hInstance, LPTSTR szWindowClass) { // je te l'enleve pour gagner de la place} int WINAPI WinMain( HINSTANCE hInstance,HINSTANCE hPrevInstance,LPTSTR lpCmdLine,int nCmdShow) { MSG msg; MyRegisterClass(hInstance, TEXT("szWindowClass")); hWnd = CreateWindow(TEXT("szWindowClass"), TEXT(""), WS_VISIBLE,CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL); if (!hWnd) { return FALSE; } LancerParsing(); // MessageBox(NULL, TEXT("Parsing ok"),TEXT("Parsing ok"), MB_OK); for(int i=0;i<GetNombreComposant();i++) { if(strncmp(GetTableauDescription(i),"B",1)==0) { hBtn[i] = CreateWindowEx( 0, TEXT("BUTTON"), ConvertAnsiToUnicode(GetContenu(i)), WS_VISIBLE | WS_BORDER | WS_TABSTOP| WS_CHILD, atoi(GetAbscisse(i)), atoi(GetOrdonnee(i)), atoi(GetLargeur(i,"B")), atoi(GetHauteur(i,"B")), hWnd, HMENU(GetIdentifiantUnivoque(i)), hInstance, NULL); if(GetFocalisation(i)!=NULL) { boutonPourFocus=hBtn[i]; } } else { hBtn[i]=NULL; } if(strncmp(GetTableauDescription(i),"E",1)==0) { hEdit[i] = CreateWindowEx( 0, TEXT("EDIT"), ConvertAnsiToUnicode(GetContenu(i)), WS_VISIBLE | WS_BORDER | WS_TABSTOP | WS_CHILD, atoi(GetAbscisse(i)), atoi(GetOrdonnee(i)), atoi(GetLargeur(i,"E")), atoi(GetHauteur(i,"E")), hWnd, HMENU(GetIdentifiantUnivoque(i)), hInstance, NULL); if(GetFocalisation(i)!=NULL) { boutonPourFocus=hEdit[i]; } } if(strncmp(GetTableauDescription(i),"L",1)==0) { hLib[i] = CreateWindowEx( 0, TEXT("STATIC"), ConvertAnsiToUnicode(GetContenu(i)), WS_VISIBLE | WS_TABSTOP| WS_CHILD, atoi(GetAbscisse(i)), atoi(GetOrdonnee(i)), atoi(GetLargeur(i,"L")), atoi(GetHauteur(i,"L")), hWnd, HMENU(GetIdentifiantUnivoque(i)), hInstance, NULL); } if(strncmp(GetTableauDescription(i),"T",1)==0 && !strstr(GetIdentifiantUnivoque(i),"#")) { hTab[i] = CreateWindowEx( WS_EX_CLIENTEDGE, TEXT("LISTBOX"), NULL, WS_VISIBLE|WS_CHILD|LBS_NOTIFY|WS_VSCROLL|WS_TABSTOP|WS_BORDER|LBS_USETABSTOPS, atoi(GetAbscisse(i)), atoi(GetOrdonnee(i)),//+15, atoi(GetLargeur(i,"T")), atoi(GetHauteur(i,"T")),//-15, hWnd, HMENU(i), hInstance, NULL); // puis gestion du contenu des lignes, la aussi je l'ai enlevé, c'est deja assez ilisible } }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question