////////////////////////////////////////////////////////////////////// // CopyRight Ph Bergougnoux Consulting "; // EndUser4GL V.2.0A.00 " ; // Tous droits réservés "; // // phone/ fax : 00 33 2 47 28 58 19 // Ph Bergougnoux " ; // // email:bergou@club-internet.fr // www.enduser4gl.comm ////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "EndUser4gl.h" #define OEMRESOURCE /* * OEM Resource Ordinal Numbers */ #define OBM_CLOSE 32754 #define OBM_UPARROW 32753 #define OBM_DNARROW 32752 #define OBM_RGARROW 32751 #define OBM_LFARROW 32750 #define OBM_REDUCE 32749 #define OBM_ZOOM 32748 #define OBM_RESTORE 32747 #define OBM_REDUCED 32746 #define OBM_ZOOMD 32745 #define OBM_RESTORED 32744 #define OBM_UPARROWD 32743 #define OBM_DNARROWD 32742 #define OBM_RGARROWD 32741 #define OBM_LFARROWD 32740 #define OBM_MNARROW 32739 #define OBM_COMBO 32738 #define OBM_UPARROWI 32737 #define OBM_DNARROWI 32736 #define OBM_RGARROWI 32735 #define OBM_LFARROWI 32734 #define OBM_OLD_CLOSE 32767 #define OBM_SIZE 32766 #define OBM_OLD_UPARROW 32765 #define OBM_OLD_DNARROW 32764 #define OBM_OLD_RGARROW 32763 #define OBM_OLD_LFARROW 32762 #define OBM_BTSIZE 32761 #define OBM_CHECK 32760 #define OBM_CHECKBOXES 32759 #define OBM_BTNCORNERS 32758 #define OBM_OLD_REDUCE 32757 #define OBM_OLD_ZOOM 32756 #define OBM_OLD_RESTORE 32755 #include "EndUser4glwinx.h" #define __GIF_H__ 1 #define GCW_HICON (-14) extern void EU_format_HW(char *szText,char *valeur1,short *width,short *height,RECT rc,int* x,int *i) ; extern void Load_MetaFile(HWND); extern void DrawButton2(HDC hDC, RECT rcBtn, BOOL fHighlighted ); extern int printfEU(const char * , ...) ; extern int DrawButtonTextLabel(HDC hDC, RECT rcBtn,BOOL fHighlighted ,HWND hwnd); void DrawBitmap (HDC , int , int , HBITMAP ); int EU_Paint_IconSys(HWND hWnd,int valeur1, int cx,int cy); int EU_Paint_IconEndUser4gl(HWND hWnd,int valeur1, int cx,int cy,short height,short width ); int EU_Paint_Icon(HWND hWnd,char *valeur1, int cx,int cy, short height,short width ); int EU_Paint_Icon2(HWND hWnd,char *valeur1, short height,short width ); int EU_Paint_IconDisplay(HWND hWnd,char *valeur1, int cx,int cy); int EU_Icon_Application(HWND hWnd,char *valeur); int EU_Draw_PushIconSys(HWND hwnd,int valeur1); HFONT g_hfont=NULL; extern int EU_Paint_Bmp(HWND hWnd,char *valeur1, int cx,int cy); /* inclure les codes éxécution de votre langage*/ long EndUser4glApp::OPCExecute_WinIconBmp(long OPCcodeExe) { char zone1[C_CMP_TAILLE_NOM_DICT] = "\0"; char zone2[C_CMP_TAILLE_NOM_DICT]= "\0"; char valeur1 [MAXBUFLENSTRING] = "\0",szText [MAXBUFLENSTRING]= "\0"; char valeur2 [MAXBUFLENSTRING] = "\0" ; int Ival=0,Ival1,Ival2,Ival3,NumDialog=0,i,x ; long Lval1,Lval2,Lval3,Lval4,LvalTab[20]; short height=0, width=0 ; RECT rc,rc2; HDC hdc; OPCt_dictHwnd *dictHwnd ; WINDOWPLACEMENT lpwndpl; lpwndpl.length = sizeof(WINDOWPLACEMENT); char *pvaleur; HDC hDCMem2 ; switch(OPCcodeExe) { case CodeExeWidtHeigthIntrep : G_height = 0;G_width =0; OPCF_Pile_Depile( P_NAMEVAR, (void *)zone1 ); OPCF_Pile_Depile( P_NAMEVAR, (void *)zone1 ); OPCF_Pile_Depile(P_INTEGER, (void*) &G_height); OPCF_Pile_Depile(P_INTEGER, (void*) &G_width); if(G_height==NULL) G_height =32; if(G_width==NULL) G_width =32; OPC_Depile_All(); break; case CodeExeDrawIconFile : OPCF_Pile_Depile( P_INTEGER, (void *)&Ival2 ) ; OPCF_Pile_Depile( P_INTEGER, (void *)&Ival3 ) ; OPCF_Pile_Depile( P_NAMEVAR, (void *)zone1 ); OPCF_Pile_Depile( P_NAMEVAR, (void *)zone1 ); OPCF_Pile_Depile( P_NAMEVAR, (void *)zone1 ); OPCF_Pile_Depile( P_INTEGER, (void *)&Ival ) ; OPCF_Pile_Depile( P_STRING, (void *)valeur1 ) ; OPC_Depile_All(); GlobalDoubleValResult = SendMessage((HWND)Dialog[Ival].HwndDialog,WM_PAINT,0L,\ (LPARAM) EU_Paint_Icon((HWND)Dialog[Ival].HwndDialog,valeur1,Ival3,Ival2, G_height, G_width ) ) ; break; case CodeExeDrawEmfFile : OPCF_Pile_Depile( P_STRING, (void *)valeur1 ) ; OPCF_Pile_Depile( P_NAMEVAR, (void *)zone1 ); OPCF_Pile_Depile( P_NAMEVAR, (void *)zone1 ); OPCF_Pile_Depile( P_INTEGER, (void *)&Ival ) ; NumDialog = OPC_Return_NumDialog(zone1); OPC_Depile_All(); Load_MetaFile(Dialog[NumDialog].TabCoordWin[Ival ].hWnd); break ; case CodeExeDrawFocusRectList : GetClientRect(G_IsOnSetCursorHWND, &rc); hdc = GetWindowDC(G_IsOnSetCursorHWND); DrawFocusRect(hdc, &rc); DeleteDC( hdc); break; case CodeExeDrawFocusRect : OPCF_Pile_Depile( P_NAMEVAR, (void *)zone1 ); OPCF_Pile_Depile( P_INTEGER, (void *)&Ival ) ; NumDialog = OPC_Return_NumDialog(zone1); GetClientRect(Dialog[NumDialog].TabCoordWin[Ival ].hWnd, &rc); hdc = GetWindowDC(Dialog[NumDialog].TabCoordWin[Ival ].hWnd); DrawFocusRect(hdc, &rc); DeleteDC( hdc); break; case CodeExeIconDialog : OPCF_Pile_Depile( P_NAMEVAR, (void *)zone1 ); OPCF_Pile_Depile( P_NAMEVAR, (void *)zone1 ); OPCF_Pile_Depile( P_INTEGER, (void *)&Ival ) ; OPCF_Pile_Depile( P_STRING, (void *)valeur1 ) ; OPC_Depile_All(); GlobalDoubleValResult =\ (int) EU_Icon_Application((HWND)Dialog[Ival].HwndDialog,valeur1); break; case CodexTPictureIconInterprete : OPCF_Pile_Depile( P_STRING, (void *)valeur1 ) ; OPCF_Pile_Depile( P_INTEGER, (void *)&Ival2 ) ; OPCF_Pile_Depile( P_NAMEVAR, (void *)zone2 ); OPCF_Pile_Depile( P_INTEGER, (void *)&Ival3 ) ; OPCF_Pile_Depile( P_NAMEVAR, (void *)zone1 ); OPCF_Pile_Depile( P_INTEGER, (void *)&Ival ) ; OPC_Depile_All(); NumDialog = OPC_Return_NumDialog(zone1); /* voir CodexeTdialogInterprete : GNumDialog */ GlobalDoubleValResult = SendMessage((HWND)Dialog[NumDialog].HwndDialog ,WM_PAINT,0L,\ (LPARAM) EU_Paint_Icon((HWND)Dialog[NumDialog].HwndDialog ,valeur1,Ival3,Ival2, height, width ) ) ; break; case CodeExeDrawIconFileSys : OPCF_Pile_Depile( P_NAMEVAR, (void *)zone2 ); OPCF_Pile_Depile( P_INTEGER, (void *)&Ival1 ) ; OPCF_Pile_Depile( P_NAMEVAR, (void *)zone2 ); OPCF_Pile_Depile( P_INTEGER, (void *)&Ival2) ; OPCF_Pile_Depile( P_NAMEVAR, (void *)zone2 ); OPCF_Pile_Depile( P_INTEGER, (void *)&Ival3 ) ; OPCF_Pile_Depile( P_NAMEVAR, (void *)zone1 ); OPCF_Pile_Depile( P_INTEGER, (void *)&Ival ) ; OPC_Depile_All(); NumDialog = OPC_Return_NumDialog(zone1); //printf(" zone1 %s NumDialog %d Ival1 %d Ival2 %d Ival3 %d",\ // zone1,NumDialog, Ival1,Ival2,Ival3); GlobalDoubleValResult = SendMessage((HWND)Dialog[NumDialog].HwndDialog ,WM_PAINT,0L,\ (LPARAM) EU_Paint_IconSys((HWND)Dialog[NumDialog].HwndDialog ,Ival1,Ival3,Ival2) ) ; break; case CodexTPictureIconSysInterprete : OPCF_Pile_Depile( P_NAMEVAR, (void *)zone1 ); OPCF_Pile_Depile( P_INTEGER, (void *)&Ival ) ; OPCF_Pile_Depile( P_INTEGER, (void *)&Ival1) ; OPCF_Pile_Depile( P_INTEGER, (void *)&Ival2 ) ; OPCF_Pile_Depile( P_INTEGER, (void *)&Ival3 ) ; OPC_Depile_All(); NumDialog = OPC_Return_NumDialog(zone1); //printfEU("Ival %d Ival1 %d Ival2 %d Ival3 %d",Ival,Ival1,Ival2,Ival3); GlobalDoubleValResult = SendMessage((HWND)Dialog[NumDialog].HwndDialog ,WM_PAINT,0L,\ (LPARAM) EU_Paint_IconSys((HWND)Dialog[NumDialog].HwndDialog ,Ival1,Ival3,Ival2) ) ; break; case CodexTPictureBmpInterprete : OPCF_Pile_Depile( P_NAMEVAR, (void *)zone1 ); OPCF_Pile_Depile( P_INTEGER, (void *)&Ival ) ; OPCF_Pile_Depile( P_NAMEVAR, (void *)zone2 ); OPCF_Pile_Depile( P_STRING, (void *)valeur1 ) ; OPCF_Pile_Depile( P_NAMEVAR, (void *)zone2 ); OPCF_Pile_Depile( P_INTEGER, (void *)&Ival2 ) ; OPCF_Pile_Depile( P_NAMEVAR, (void *)zone2 ); OPCF_Pile_Depile( P_INTEGER, (void *)&Ival3 ) ; OPC_Depile_All(); NumDialog = OPC_Return_NumDialog(zone1); /* voir CodexeTdialogInterpre,te : GNumDialog */ // printfEU("valeur1 %s Ival2 %d Ival3 %d",valeur1,Ival2,Ival3); GlobalDoubleValResult = SendMessage((HWND)Dialog[NumDialog].HwndDialog ,WM_PAINT ,0L,\ (LPARAM) EU_Paint_Bmp((HWND)Dialog[NumDialog].HwndDialog ,valeur1,Ival3 ,Ival2 )) ; break; case CodeExeSwapBmp : OPCF_Pile_Depile( P_NAMEVAR, (void *)zone2 ); OPCF_Pile_Depile( P_STRING, (void *)valeur1 ) ; OPCF_Pile_Depile( P_NAMEVAR, (void *)zone2 ); OPCF_Pile_Depile( P_STRING, (void *)valeur2 ) ; OPCF_Pile_Depile( P_NAMEVAR, (void *)zone1 ); OPCF_Pile_Depile( P_INTEGER, (void *)&Ival ) ; OPC_Depile_All(); NumDialog = OPC_Return_NumDialog(zone1); i= OPC_Update_TableTabSymboleSwap(zone1,1); GetWindowPlacement(Dialog[NumDialog].TabCoordWin[Ival ].hWnd ,&lpwndpl); rc2 = lpwndpl.rcNormalPosition; if(i==0){ GlobalDoubleValResult = SendMessage((HWND)Dialog[NumDialog].HwndDialog ,WM_PAINT ,0L,\ (LPARAM) EU_Paint_Bmp((HWND)Dialog[NumDialog].HwndDialog ,valeur1,rc2.left+8,rc2.top )) ; } else GlobalDoubleValResult = SendMessage((HWND)Dialog[NumDialog].HwndDialog ,WM_PAINT ,0L,\ (LPARAM) EU_Paint_Bmp((HWND)Dialog[NumDialog].HwndDialog ,valeur2,rc2.left+8,rc2.top )) ; break; case CodeExeSwapText : OPCF_Pile_Depile( P_NAMEVAR, (void *)zone2 ); OPCF_Pile_Depile( P_STRING, (void *)valeur1 ) ; OPCF_Pile_Depile( P_NAMEVAR, (void *)zone2 ); OPCF_Pile_Depile( P_STRING, (void *)valeur2 ) ; OPCF_Pile_Depile( P_NAMEVAR, (void *)zone1 ); OPCF_Pile_Depile( P_INTEGER, (void *)&Ival ) ; OPC_Depile_All(); NumDialog = OPC_Return_NumDialog(zone1); i= OPC_Update_TableTabSymboleSwap(zone1,2); if(i==0) SetWindowText(Dialog[NumDialog].TabCoordWin[Ival ].hWnd,valeur1); else SetWindowText(Dialog[NumDialog].TabCoordWin[Ival ].hWnd,valeur2); InvalidateRect(Dialog[NumDialog].TabCoordWin[Ival ].hWnd,NULL,TRUE); break; case CodeExeSwapColor : OPCF_Pile_Depile( P_NAMEVAR, (void *)zone2 ); OPCF_Pile_Depile( P_LONG, (void *)&Lval1) ; OPCF_Pile_Depile( P_NAMEVAR, (void *)zone2 ); OPCF_Pile_Depile( P_LONG, (void *)&Lval2) ; OPCF_Pile_Depile( P_NAMEVAR, (void *)zone2 ); OPCF_Pile_Depile( P_LONG, (void *)&Lval3) ; OPCF_Pile_Depile( P_NAMEVAR, (void *)zone2 ); OPCF_Pile_Depile( P_LONG, (void *)&Lval4) ; OPCF_Pile_Depile( P_NAMEVAR, (void *)zone1 ); OPCF_Pile_Depile( P_INTEGER, (void *)&Ival ) ; OPC_Depile_All(); NumDialog = OPC_Return_NumDialog(zone1); i= OPC_Update_TableTabSymboleSwap(zone1,3); //printfEU("zone1 %s i %d",zone1,i); if(i==0) { dictHwnd = OPCF_str_dict_lectHwnd(Dialog[NumDialog].TabCoordWin[Ival].hWnd); if(dictHwnd) { dictHwnd ->TextColor = Lval1; dictHwnd ->BkTextColor = Lval2; SendMessage(Dialog[NumDialog].TabCoordWin[Ival].hWnd, WM_SETREDRAW, TRUE, 0); InvalidateRect( Dialog[NumDialog].TabCoordWin[Ival].hWnd , NULL, TRUE); UpdateWindow( GetParent(Dialog[NumDialog].TabCoordWin[Ival].hWnd) ); // Forcer l'affichage dès maintenant } } else { dictHwnd = OPCF_str_dict_lectHwnd(Dialog[NumDialog].TabCoordWin[Ival].hWnd); if(dictHwnd) { //printfEU(" TROUVE zone1 %s i %d Lval4 %ld",zone1,i,Lval4); dictHwnd ->TextColor = Lval3; dictHwnd ->BkTextColor = Lval4; SendMessage(Dialog[NumDialog].TabCoordWin[Ival].hWnd, WM_SETREDRAW, TRUE, 0); InvalidateRect( Dialog[NumDialog].TabCoordWin[Ival].hWnd , NULL, TRUE); UpdateWindow( GetParent(Dialog[NumDialog].TabCoordWin[Ival].hWnd) ); // Forcer l'affichage dès maintenant } } // InvalidateRect(Dialog[NumDialog].TabCoordWin[Ival ].hWnd,NULL,TRUE); // UpdateWindow( GetParent(Dialog[NumDialog].TabCoordWin[Ival].hWnd) ); // Forcer l'affichage dès maintenant break; case CodeExeSwapFont : //extern void EU_Font_WinTxt(HWND hwnd,int val[13],char *FaceName ); extern VOID MaybeDeleteObject(HGDIOBJ * phgdi); HDC hDC; // MaybeDeleteObject((void **)&g_hfont); OPCF_Pile_Depile( P_NAMEVAR, (void *)zone2 ); OPCF_Pile_Depile( P_STRING, (void *)valeur2 ) ; OPCF_Pile_Depile( P_NAMEVAR, (void *)zone2 ); OPCF_Pile_Depile( P_LONG, (void *)&LvalTab[1]) ; OPCF_Pile_Depile( P_NAMEVAR, (void *)zone2 ); OPCF_Pile_Depile( P_LONG, (void *)&LvalTab[2]) ; OPCF_Pile_Depile( P_NAMEVAR, (void *)zone2 ); OPCF_Pile_Depile( P_LONG, (void *)&LvalTab[3]) ; OPCF_Pile_Depile( P_NAMEVAR, (void *)zone2 ); OPCF_Pile_Depile( P_LONG, (void *)&LvalTab[4]) ; OPCF_Pile_Depile( P_NAMEVAR, (void *)zone2 ); OPCF_Pile_Depile( P_LONG, (void *)&LvalTab[5]) ; OPCF_Pile_Depile( P_NAMEVAR, (void *)zone2 ); OPCF_Pile_Depile( P_LONG, (void *)&LvalTab[6]) ; OPCF_Pile_Depile( P_NAMEVAR, (void *)zone2 ); OPCF_Pile_Depile( P_LONG, (void *)&LvalTab[7]) ; OPCF_Pile_Depile( P_NAMEVAR, (void *)zone2 ); OPCF_Pile_Depile( P_STRING, (void *)valeur1 ) ; OPCF_Pile_Depile( P_NAMEVAR, (void *)zone2 ); OPCF_Pile_Depile( P_LONG, (void *)&LvalTab[8]) ; OPCF_Pile_Depile( P_NAMEVAR, (void *)zone2 ); OPCF_Pile_Depile( P_LONG, (void *)&LvalTab[9]) ; OPCF_Pile_Depile( P_NAMEVAR, (void *)zone2 ); OPCF_Pile_Depile( P_LONG, (void *)&LvalTab[10]) ; OPCF_Pile_Depile( P_NAMEVAR, (void *)zone2 ); OPCF_Pile_Depile( P_LONG, (void *)&LvalTab[11]) ; OPCF_Pile_Depile( P_NAMEVAR, (void *)zone2 ); OPCF_Pile_Depile( P_LONG, (void *)&LvalTab[12]) ; OPCF_Pile_Depile( P_NAMEVAR, (void *)zone2 ); OPCF_Pile_Depile( P_LONG, (void *)&LvalTab[13]) ; OPCF_Pile_Depile( P_NAMEVAR, (void *)zone2 ); OPCF_Pile_Depile( P_LONG, (void *)&LvalTab[14]) ; OPCF_Pile_Depile( P_NAMEVAR, (void *)zone1 ); OPCF_Pile_Depile( P_INTEGER, (void *)&Ival ) ; OPC_Depile_All(); NumDialog = OPC_Return_NumDialog(zone1); if(NumDialog==0) return 0; hDC = GetWindowDC(Dialog[NumDialog].TabCoordWin[Ival ].hWnd ); i= OPC_Update_TableTabSymboleSwap(zone1,4); if(i==0) { g_hfont= CreateFont(LvalTab[7], LvalTab[6],LvalTab[5],LvalTab[4], LvalTab[3],\ LvalTab[2], LvalTab[1], FALSE, ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, PROOF_QUALITY, DEFAULT_PITCH | FF_MODERN, valeur1 ); SendMessage(Dialog[NumDialog].TabCoordWin[Ival ].hWnd,WM_SETFONT,(WPARAM)g_hfont,1); DeleteObject(SelectObject(hDC, CreateFont(LvalTab[7], LvalTab[6],LvalTab[5],LvalTab[4], LvalTab[3],\ LvalTab[2], LvalTab[1], FALSE, ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, PROOF_QUALITY, DEFAULT_PITCH | FF_MODERN, valeur1 ))); } else { g_hfont= CreateFont(LvalTab[14], LvalTab[13],LvalTab[12],LvalTab[11], LvalTab[10],\ LvalTab[9], LvalTab[8], FALSE, ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, PROOF_QUALITY, DEFAULT_PITCH | FF_MODERN, valeur2 ); SendMessage(Dialog[NumDialog].TabCoordWin[Ival ].hWnd,WM_SETFONT,(WPARAM)g_hfont,1); DeleteObject(SelectObject(hDC,CreateFont(LvalTab[14], LvalTab[13],LvalTab[12],LvalTab[11], LvalTab[10],\ LvalTab[9], LvalTab[8], FALSE, ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, PROOF_QUALITY, DEFAULT_PITCH | FF_MODERN, valeur2 ))); } DeleteDC(hDC); break; case CExeActivateAnimateGif : OPCF_Pile_Depile( P_NAMEVAR, (void *)zone1 ); OPCF_Pile_Depile( P_INTEGER,(void *)&NumDialog); // NumDialog = OPC_Return_NumDialog(zone1); // printfEU("CExeActivateAnimateGif %X",Dialog[NumDialog].TabCoordWinImage[Ival].hWnd); if(NumDialog==0) return 0; return 0; int y; for(y=0;y <= MAX_WIN ;y++) { if(IsWindow( Dialog[NumDialog].TabCoordWinImage[y ].hWnd)) SendMessage((HWND)Dialog[NumDialog].TabCoordWinImage[y].hWnd, WM_PAINT,0L,0l); } break; case CExeActivateAnimateBmp : OPCF_Pile_Depile( P_NAMEVAR, (void *)zone1 ); OPCF_Pile_Depile( P_INTEGER,(void *)&Ival); NumDialog = OPC_Return_NumDialog(zone1); //printfEU("CExeActivateAnimateBmp "); if(NumDialog==0) return 0; dictHwnd = OPCF_str_dict_lectHwnd(Dialog[NumDialog].TabCoordWin[Ival].hWnd ); i = GetWindowTextLength ((HWND)Dialog[NumDialog].TabCoordWin[Ival].hWnd); pvaleur = (char *) calloc(sizeof(char *),i+1); GetWindowText((HWND)Dialog[NumDialog].TabCoordWin[Ival].hWnd,pvaleur,i+1); GetWindowPlacement((HWND)Dialog[NumDialog].TabCoordWin[Ival].hWnd ,&lpwndpl); rc = lpwndpl.rcNormalPosition; hDC = GetWindowDC(GetParent(Dialog[NumDialog].TabCoordWin[Ival ].hWnd) ); hDCMem2 = CreateCompatibleDC(hDC); if(dictHwnd ->hBitmap==NULL) { printfEU("Bitmap not found /non trouvé Activate %s",pvaleur); return 0 ; } SelectObject(hDCMem2, dictHwnd ->hBitmap); dictHwnd ->ShadowColor++; // printfEU("dictHwnd ->ShadowColor %d dictHwnd ->BkTextColor %d ",\ dictHwnd ->ShadowColor,dictHwnd ->BkTextColor ); BitBlt(hDC, rc.left, rc.top,dictHwnd ->TextColor, dictHwnd ->FrameColor,\ hDCMem2,dictHwnd ->ShadowColor * dictHwnd ->FrameColor, 0, SRCCOPY); if(dictHwnd ->ShadowColor == (dictHwnd ->BkTextColor )) dictHwnd ->ShadowColor=-1; DeleteDC(hDC); DeleteDC(hDCMem2); InvalidateRect( Dialog[NumDialog].TabCoordWin[Ival ].hWnd ,NULL,TRUE);//hyperImportant break; case CodeExeRepLaceButtonBmp : OPCF_Pile_Depile( P_NAMEVAR, (void *)zone2 ); OPCF_Pile_Depile( P_STRING, (void *)valeur1 ) ; OPCF_Pile_Depile( P_NAMEVAR, (void *)zone1 ); OPCF_Pile_Depile( P_INTEGER, (void *)&Ival ) ; OPC_Depile_All(); NumDialog = OPC_Return_NumDialog(zone1 ); GetWindowPlacement(Dialog[NumDialog].TabCoordWin[Ival ].hWnd ,&lpwndpl); rc2 = lpwndpl.rcNormalPosition; GlobalDoubleValResult = SendMessage((HWND)Dialog[NumDialog].HwndDialog ,WM_PAINT ,0L,\ (LPARAM) EU_Paint_Bmp((HWND)Dialog[NumDialog].HwndDialog ,valeur1,rc2.left+8,rc2.top )) ; break; case CodeExeRepLaceButtonIcon : OPCF_Pile_Depile( P_NAMEVAR, (void *)zone2 ); OPCF_Pile_Depile( P_STRING, (void *)valeur2 ) ; OPCF_Pile_Depile( P_NAMEVAR, (void *)zone1 ); OPCF_Pile_Depile( P_INTEGER, (void *)&Ival ) ; OPC_Depile_All(); NumDialog = OPC_Return_NumDialog(zone1); //printfEU("%s %s ",zone1,zone2); GetWindowText(Dialog[NumDialog].TabCoordWin[Ival ].hWnd, szText,MAXBUFLENSTRING ); GetWindowRect(Dialog[NumDialog].TabCoordWin[Ival ].hWnd, &rc ); if(strlen(szText)){ EU_format_HW(szText,valeur1,(short *) &width, (short *)&height, rc, (int *)&x, (int *)&i); GlobalDoubleValResult = SendMessage((HWND)Dialog[NumDialog].HwndDialog ,WM_PAINT ,0L,\ (LPARAM) EU_Paint_Icon2(Dialog[NumDialog].TabCoordWin[Ival ].hWnd,valeur2, height, width )) ; } else { GlobalDoubleValResult = SendMessage((HWND)Dialog[NumDialog].HwndDialog ,WM_PAINT ,0L,\ (LPARAM) EU_Paint_Icon2(Dialog[NumDialog].TabCoordWin[Ival ].hWnd,valeur2, 16,16 )) ; } break; case CodexTPicturePushIconSysInterprete : OPCF_Pile_Depile( P_NAMEVAR, (void *)zone1 ); OPCF_Pile_Depile( P_NAMEVAR, (void *)zone2 ); OPCF_Pile_Depile( P_INTEGER, (void *)&Ival ) ; OPCF_Pile_Depile( P_INTEGER, (void *)&Ival2 ) ; OPC_Depile_All(); NumDialog = OPC_Return_NumDialog(zone1); EU_Draw_PushIconSys((HWND)Dialog[NumDialog].TabCoordWin[Ival].hWnd,Ival2) ; break; case 55555 : SendMessage( 0,WM_PAINT,0L, (LPARAM) EU_Paint_IconDisplay(0,valeur1, 2,10)); break; case 55556 : // SendMessage( Dialog[NumDialog].TabCoordWin[Ival].hWnd,WM_PAINT,0L,\ // (LPARAM) EU_Paint_IconDisplay(HwndTDisplayEndUser4gl,"c:\\EndUser4gl\\icons\\18.ico", 50,100)); break; default : return EUError;//return EU_Error_Code_Exe(OPCcodeExe); /* execute.c */ } return GlobalTrue; } int EU_Icon_Application(HWND hWnd,char *valeur) { HICON hNewIcon ; HDC hdc ; long Lval; hdc = GetWindowDC(hWnd); hNewIcon = ExtractIcon ((HINSTANCE)hWnd ,(LPSTR) valeur, 0); if(!hNewIcon) return 1; Lval = SetClassLong( hWnd, GCW_HICON ,(long) hNewIcon); DeleteDC(hdc); return 0; } /* #define OBM_CLOSE 32754 #define OBM_UPARROW 32753 #define OBM_DNARROW 32752 #define OBM_RGARROW 32751 #define OBM_LFARROW 32750 #define OBM_REDUCE 32749 #define OBM_ZOOM 32748 #define OBM_RESTORE 32747 #define OBM_REDUCED 32746 #define OBM_ZOOMD 32745 #define OBM_RESTORED 32744 #define OBM_UPARROWD 32743 #define OBM_DNARROWD 32742 #define OBM_RGARROWD 32741 #define OBM_LFARROWD 32740 #define OBM_MNARROW 32739 #define OBM_COMBO 32738 //#if (WINVER >= 0x030a) #define OBM_UPARROWI 32737 #define OBM_DNARROWI 32736 #define OBM_RGARROWI 32735 #define OBM_LFARROWI 32734 : VALEUR1 à FAIRE*/ int EU_Paint_BmpSYS(HWND hWnd,char *valeur1, int cx,int cy) { HBITMAP hBitmap ; HDC hdc ; if ( hBitmap = LoadBitmap (NULL, MAKEINTRESOURCE (OBM_UPARROW)) ) {DrawBitmap (hdc, cx,cy, hBitmap) ; DeleteObject(hBitmap); } else return 1; DeleteDC(hdc); return 0; } int EU_Paint_Bmp(HWND hWnd,char *valeur1, int cx,int cy) { HANDLE Hbitmap; HDC hdc ; int Iid=0; Iid = GetWindowLong(hWnd,GWL_ID ); //printfEU("Okkkkk Iid %d cx %d cy %d %s,Iid,valeur1,cx,cy"); hdc = GetDC(hWnd); if ( Hbitmap=(HBITMAP) LoadImage(hInstance,valeur1,\ IMAGE_BITMAP ,0,0 , LR_LOADFROMFILE )) { DrawBitmap (hdc, cx,cy , (HBITMAP) Hbitmap) ; DeleteObject(Hbitmap); } else {DeleteDC(hdc); return 1;} DeleteDC(hdc); return 0; } int EU_Paint_BmpEndUser4gl(HWND hWnd,int number, int cx,int cy) { HBITMAP Hbitmap; HDC hdc ,hdcmem; HBITMAP hbmpOld; //printfEU("Okkkkkkkkkkk"); HANDLE hRes ; // Load the bitmap. //................. hRes= LoadResource( hInstance, FindResource( hInstance, "TRIA", RT_BITMAP ) ); hdc = GetWindowDC(hWnd); hdcmem =CreateCompatibleDC(hdc); // Hbitmap = LoadBitmap(0,MAKEINTRESOURCE(number)); printfEU("Okkkkkkkkkkk %X number %d",Hbitmap,number); hbmpOld=( HBITMAP) SelectObject(hdc , Hbitmap); BitBlt(hdc, 0,0, cx, cy, hdcmem, 0,0, SRCCOPY); SelectObject(hdcmem, hbmpOld); return 0; } int EU_Draw_PushBmp(HWND hwnd,char *valeur1) { HANDLE Hbitmap; int i ; if ( Hbitmap=(HBITMAP) LoadImage(hInstance,valeur1,\ IMAGE_BITMAP ,0,0 ,\ LR_LOADFROMFILE )) { i = SendMessage(hwnd, BM_SETIMAGE, \ (WPARAM) IMAGE_BITMAP,(LPARAM) (HBITMAP) Hbitmap ) ; //printf("i %d",i); // DeleteObject(Hbitmap); /* Ne jamais proceder au deleteObject */ } else return 1; return 0; } void DrawBitmap (HDC hdc, int xStart, int yStart, HBITMAP hBitmap) { BITMAP bm ; HDC hMemDC ; POINT pt ; hMemDC = CreateCompatibleDC (hdc) ; SelectObject (hMemDC, hBitmap) ; GetObject (hBitmap, sizeof (BITMAP), (PSTR) &bm) ; pt.x = bm.bmWidth ; pt.y = bm.bmHeight ; BitBlt (hdc, xStart, yStart, pt.x, pt.y, hMemDC, 0, 0, SRCCOPY) ; DeleteDC (hMemDC) ; } /*IDI_APPLICATION Default application icon. IDI_ASTERISK Asterisk (used in informative messages). IDI_EXCLAMATION Exclamation point (used in warning messages). IDI_HAND Hand-shaped icon (used in serious warning messages). IDI_QUESTION */ int EU_Paint_IconSys(HWND hWnd,int valeur1, int cx,int cy) { HDC hdc ; int i ; HICON hNewIcon; hdc = GetWindowDC(hWnd); hNewIcon = LoadIcon(hInstance, MAKEINTRESOURCE( valeur1) ); if(!hNewIcon) hNewIcon =ExtractIcon(hInstance, "enduser4gl.exe",valeur1); if(!hNewIcon) return 1; i= DrawIcon (hdc,cx,cy, hNewIcon) ; DeleteDC(hdc); // DestroyIcon(hNewIcon); return 0; } int EU_Paint_IconEndUser4gl(HWND hWnd,int valeur1, int cx,int cy,short height,short width ) { HDC hdc ; HICON hicon; /* valeur 1: 0 ICON MOVEABLE "eu.ico" 1 ICON DISCARDABLE "sql.ico" 2 ICON DISCARDABLE "table.ico" 3 ICON DISCARDABLE "save.ico" 4 ICON DISCARDABLE "save2.ico" 5 ICON DISCARDABLE "help.ico" 6 ICON DISCARDABLE "help2.ico" 7 ICON DISCARDABLE "imprimante.ico" 8 ICON DISCARDABLE "next.ico" 9 ICON MOVEABLE "cancel.ico" 10 ICON DISCARDABLE "ok1.ico" 11 ICON MOVEABLE "ok2.ico" 12 ICON MOVEABLE "write.ico" 13 ICON MOVEABLE "openfile.ico" 14 ICON MOVEABLE "openfile2.ico" 15 ICON MOVEABLE "queryenv.ico" 16 ICON MOVEABLE "suppress.ico" 17 ICON MOVEABLE "create.ico" 18 ICON MOVEABLE "preced.ico" */ hdc = GetWindowDC(hWnd); hicon =ExtractIcon(hInstance, "enduser4gl.exe",valeur1); DrawIconEx( hdc,cx ,cy , hicon,width ,height,0, NULL, DI_NORMAL ); DeleteDC(hdc); DestroyIcon(hicon); return 0; } int EU_Paint_Icon(HWND hWnd,char *valeur1, int cx,int cy,short height,short width ) { HDC hDC ; int i=0 ; HICON hNewIcon; RECT rc; hDC = GetDC(hWnd); GetWindowRect(hWnd,&rc); //printfEU("rc.left %d rc.top %d cx %d cy %d %s", rc.left,rc.top,cx,cy,valeur1); if(cx<0)cx = 1;if(cy<0) cy=1; if ( hNewIcon=(HICON) LoadImage(hInstance,valeur1,\ IMAGE_ICON ,LR_DEFAULTSIZE,LR_DEFAULTSIZE , LR_LOADFROMFILE )) { DrawIconEx( hDC,cx ,cy , hNewIcon,width ,height,0, NULL, DI_NORMAL ); DeleteDC(hDC); // DestroyIcon(hNewIcon); return 0; } else {DeleteDC(hDC); i = GetWindowLong(hWnd,GWL_ID ); TRACEEU(" EU_Paint_Icon : NON TROUVE %X %s", hWnd, valeur1); return 1;} // DrawIconEx( hDC, lpcwd->BlackRect.left + ((RectWidth(lpcwd->BlackRect)-Width)/2), // lpcwd->BlackRect.top + ((RectHeight(lpcwd->BlackRect)-Height)/2), } int EU_Paint_Icon2(HWND hWnd,char *valeur1 ,short height,short width ) {HICON hNewIcon; HDC hDC; HPEN hPenPrev, hPenShadow, hPenHighlight, hPenBlack; HBRUSH hBrushPrev, hBrushFace; int RopPrev,i,x; RECT rcBtn; int Iid; hDC = GetWindowDC( hWnd ); GetWindowRect( hWnd ,&rcBtn); //printfEU(" hwnd %X %d %d %d %d",hWnd,rcBtn.left,rcBtn.top,rcBtn.right,rcBtn.bottom); Iid = GetWindowLong(hWnd,GWL_ID ); hBrushFace = GetSysColorBrush( COLOR_3DFACE); hBrushPrev =(HBRUSH) SelectObject(hDC, hBrushFace); if(( Iid != EU_ButtonIconDraw )&&( Iid != EU_ButtonIconDrawLabel )\ && ( Iid != EU_ButtonIconDrawLabelCenter)) { rcBtn.right= rcBtn.right/100; rcBtn.bottom = rcBtn.bottom/100; // get current state so we can put it back at the end of DrawButton PatBlt( hDC, rcBtn.left + 1, rcBtn.top + 1, rcBtn.right - rcBtn.left-10, rcBtn.bottom - rcBtn.top- 10, PATCOPY ); --rcBtn.right; --rcBtn.bottom; SelectObject(hDC, hPenPrev); if ( hNewIcon=(HICON) LoadImage(hInstance,valeur1,\ IMAGE_ICON ,64,64 , LR_LOADFROMFILE )) { DrawIconEx (hDC,rcBtn.right ,rcBtn.bottom , hNewIcon,width ,height,0, NULL, DI_NORMAL ); DeleteDC(hDC); DestroyIcon(hNewIcon); //printfEU("--------------ButtonIcon..........:%d %d %s %X",rcBtn.right ,rcBtn.bottom,valeur1,hNewIcon); } } else //( Iid == EU_ButtonIconDraw ) { hPenShadow = CreatePen(PS_SOLID,0,GetSysColor(COLOR_3DSHADOW)); hPenHighlight = CreatePen(PS_SOLID,0,GetSysColor( COLOR_BTNHILIGHT));//COLOR_3DHILIGHT)); hPenBlack =(HPEN) GetStockObject(BLACK_PEN); hBrushFace = GetSysColorBrush( COLOR_3DFACE); // get current state so we can put it back at the end of DrawButton hPenPrev =(HPEN) SelectObject(hDC, hPenBlack); RopPrev = SetROP2(hDC, R2_COPYPEN); hBrushPrev =(HBRUSH) SelectObject(hDC, hBrushFace); --rcBtn.right; --rcBtn.bottom; PatBlt( hDC, rcBtn.left +1, rcBtn.top + 1, rcBtn.right - rcBtn.left - 1, rcBtn.bottom - rcBtn.top - 1, PATCOPY ); SelectObject(hDC, hPenBlack); MoveToEx(hDC, rcBtn.left, rcBtn.bottom - 1, NULL); LineTo(hDC, rcBtn.left, rcBtn.top); // _ LineTo(hDC, rcBtn.right, rcBtn.top); // | SelectObject(hDC, hPenHighlight); MoveToEx(hDC, rcBtn.right, rcBtn.top, NULL); LineTo(hDC, rcBtn.right, rcBtn.bottom); LineTo(hDC, rcBtn.left - 1, rcBtn.bottom); // _| SelectObject(hDC, hPenShadow); MoveToEx(hDC, rcBtn.left + 1, rcBtn.bottom - 2, NULL); LineTo(hDC, rcBtn.left + 1, rcBtn.top + 1); LineTo(hDC, rcBtn.right - 1, rcBtn.top + 1); SetROP2(hDC, RopPrev); SelectObject(hDC, hBrushPrev); SelectObject(hDC, hPenPrev); if(( Iid == EU_ButtonIconDraw )||( Iid == EU_ButtonIconDrawLabel )){ // rcBtn.right -=rcBtn.left ; rcBtn.bottom -= rcBtn.top; //TRACEEU("OKKKKKKK valeur1 %s",valeur1); if ( hNewIcon=(HICON) LoadImage(hInstance,valeur1,\ IMAGE_ICON ,64,64 , LR_LOADFROMFILE )) { DrawIconEx (hDC,rcBtn.right/100 ,rcBtn.bottom/100 , hNewIcon,width ,height,0, NULL, DI_NORMAL ); DeleteDC(hDC); DestroyIcon(hNewIcon); // InvalidateRect( hWnd , NULL, TRUE); //animate } DrawButtonTextLabel(hDC, rcBtn,0 ,hWnd); } else if( Iid == EU_ButtonIconDrawLabelCenter ) { rcBtn.right -=rcBtn.left ; rcBtn.bottom -= rcBtn.top; x = (rcBtn.right - height) /2; i = (rcBtn.bottom - width)/2; if ( hNewIcon=(HICON) LoadImage(hInstance,valeur1,\ IMAGE_ICON ,64,64 , LR_LOADFROMFILE )) { DrawIconEx (hDC, x,i , hNewIcon,width ,height,0, NULL, DI_NORMAL ); DeleteDC(hDC); DestroyIcon(hNewIcon); // InvalidateRect( hWnd , NULL, TRUE); //animate } DrawButtonTextLabel(hDC, rcBtn,2 ,hWnd); } } //SetBkMode(hDC, OPAQUE); DeleteObject(hPenBlack); DeleteObject(hPenShadow); DeleteObject(hPenHighlight); DeleteObject(hBrushFace); DeleteDC(hDC); return 0; } int EU_Draw_PushIcon(HWND hwnd,char *valeur1) { int i ; HICON hNewIcon; if (hNewIcon = ExtractIcon ((HINSTANCE)hwnd,(LPSTR) valeur1, 0) ) { i = SendMessage(hwnd, BM_SETIMAGE, \ (WPARAM) IMAGE_ICON,(LPARAM) (HICON) hNewIcon ) ; // DestroyIcon(hNewIcon);; /* Ne jamais proceder au DestroyIcon*/ // PRESSED i = SendMessage(hwnd, BM_SETSTATE, \ (WPARAM) 1,(LPARAM) 0 ) ; return 0; } else return 1; } int EU_Draw_PushIconSys(HWND hwnd,int valeur1) { HICON hiconSm ; int i,cxIcon,cyIcon ; if (hiconSm = LoadIcon(hInstance, MAKEINTRESOURCE(valeur1) ) ) { cxIcon = GetSystemMetrics (SM_CXICON) ; cyIcon = GetSystemMetrics (SM_CYICON) ; cxIcon = cxIcon / 2; cyIcon = cyIcon / 2; i = SendMessage(hwnd, BM_SETIMAGE, \ (WPARAM) IMAGE_ICON,(LPARAM) (HICON) hiconSm ) ; // DestroyIcon(hNewIcon);; /* Ne jamais proceder au DestroyIcon*/ return 0; } else if (hiconSm =ExtractIcon(hInstance, "enduser4gl.exe",valeur1)) { cxIcon = GetSystemMetrics (SM_CXICON) ; cyIcon = GetSystemMetrics (SM_CYICON) ; cxIcon = cxIcon / 2; cyIcon = cyIcon / 2; i = SendMessage(hwnd, BM_SETIMAGE, \ (WPARAM) IMAGE_ICON,(LPARAM) (HICON) hiconSm ) ; // DestroyIcon(hNewIcon);; /* Ne jamais proceder au DestroyIcon*/ return 0; } else return 1; } int EU_Paint_IconDisplay(HWND hWnd,char *valeur1, int cx,int cy) { HDC hdc ; HICON hNewIcon; hdc = GetWindowDC(hWnd); hNewIcon = ExtractIcon ((HINSTANCE)hWnd,(LPSTR) valeur1, 0); if(!hNewIcon) return 1; DrawIcon (hdc,cx,cy, hNewIcon) ; DeleteDC(hdc); DestroyIcon(hNewIcon); return 0; }