Developpement plugin C++
Modérateurs : Modérateurs, Développeurs
Developpement plugin C++
Bonjour à tous
J'ai un petit souci. Je voudrai bien developper un plugin pour photofiltre (enfin essayer) mais je ne connais que visual C++6 et quand j'essaie de compiler les exemples du SDK, ça ne fonctionne pas. Il y a certainement des modifications à faire dans les fichiers ou des librairies à inclure ou autre chose... Quelqu'un pourrait -il me venir en aide?
Merci beaucoup
J'ai un petit souci. Je voudrai bien developper un plugin pour photofiltre (enfin essayer) mais je ne connais que visual C++6 et quand j'essaie de compiler les exemples du SDK, ça ne fonctionne pas. Il y a certainement des modifications à faire dans les fichiers ou des librairies à inclure ou autre chose... Quelqu'un pourrait -il me venir en aide?
Merci beaucoup
-
- Administrateur(trice)|Administrateur|Administratrice
- Messages : 12790
- Inscription : 28 oct. 2003 22:49
-
- Développeur(se)|Développeur|Développeuse
- Messages : 974
- Inscription : 28 avr. 2004 8:45
- Version de PhotoFiltre : 6
- Système d'exploitation : xp seven
- Localisation : 78
-
- Habitué(e)|Habitué|Habituée
- Messages : 82
- Inscription : 02 janv. 2005 17:03
- Version de PhotoFiltre : 6.2.7
- Système d'exploitation : XP
- Mémoire RAM : 1024
- Localisation : Aartselaar,Vlaanderen
-
- Nouveau(elle)|Nouveau|Nouvelle
- Messages : 49
- Inscription : 24 janv. 2007 18:53
- Version de PhotoFiltre : Photofiltre studio
- Système d'exploitation : windows XP & Kubuntu 7.04
- Processeur : Pentium D 2,8 GHz
- Mémoire RAM : 1024 MO
-
- Développeur(se)|Développeur|Développeuse
- Messages : 974
- Inscription : 28 avr. 2004 8:45
- Version de PhotoFiltre : 6
- Système d'exploitation : xp seven
- Localisation : 78
Salut Khazna,
Tu as deux exemples en C dans le sdk PhotoFiltre et un en Visual Cpp 6 ici :viewtopic.php?t=2889
Si tu connais bien le language et ton compilo, tu devrais pouvoir (sans trop de difficultés) adapter les entetes et les sources.
A+
Tu as deux exemples en C dans le sdk PhotoFiltre et un en Visual Cpp 6 ici :viewtopic.php?t=2889
Si tu connais bien le language et ton compilo, tu devrais pouvoir (sans trop de difficultés) adapter les entetes et les sources.
A+
-
- Nouveau(elle)|Nouveau|Nouvelle
- Messages : 49
- Inscription : 24 janv. 2007 18:53
- Version de PhotoFiltre : Photofiltre studio
- Système d'exploitation : windows XP & Kubuntu 7.04
- Processeur : Pentium D 2,8 GHz
- Mémoire RAM : 1024 MO
-
- Administrateur(trice)|Administrateur|Administratrice
- Messages : 2038
- Inscription : 28 oct. 2003 13:39
- Version de PhotoFiltre : 6.2.7/9.0.0
- Système d'exploitation : Windows XP Pro SP2
- Processeur : Intel Pentium IV 3.2 Ghz HT
- Mémoire RAM : 1536 Mo DDR
- Localisation : 63
-
- Nouveau(elle)|Nouveau|Nouvelle
- Messages : 49
- Inscription : 24 janv. 2007 18:53
- Version de PhotoFiltre : Photofiltre studio
- Système d'exploitation : windows XP & Kubuntu 7.04
- Processeur : Pentium D 2,8 GHz
- Mémoire RAM : 1024 MO
-
- Nouveau(elle)|Nouveau|Nouvelle
- Messages : 49
- Inscription : 24 janv. 2007 18:53
- Version de PhotoFiltre : Photofiltre studio
- Système d'exploitation : windows XP & Kubuntu 7.04
- Processeur : Pentium D 2,8 GHz
- Mémoire RAM : 1024 MO
-
- Administrateur(trice)|Administrateur|Administratrice
- Messages : 12790
- Inscription : 28 oct. 2003 22:49
-
- Nouveau(elle)|Nouveau|Nouvelle
- Messages : 49
- Inscription : 24 janv. 2007 18:53
- Version de PhotoFiltre : Photofiltre studio
- Système d'exploitation : windows XP & Kubuntu 7.04
- Processeur : Pentium D 2,8 GHz
- Mémoire RAM : 1024 MO
Je vais peut être posé cette question sur http://www.developpez.com...
-
- Développeur(se)|Développeur|Développeuse
- Messages : 974
- Inscription : 28 avr. 2004 8:45
- Version de PhotoFiltre : 6
- Système d'exploitation : xp seven
- Localisation : 78
-
- Nouveau(elle)|Nouveau|Nouvelle
- Messages : 49
- Inscription : 24 janv. 2007 18:53
- Version de PhotoFiltre : Photofiltre studio
- Système d'exploitation : windows XP & Kubuntu 7.04
- Processeur : Pentium D 2,8 GHz
- Mémoire RAM : 1024 MO
Déjà j'ai modifié l'entête pour que ça colle avec Dev-Cpp (je ne sais pas si c'est bon d'ailleurs ).
Ensuite j'ai modifié les inclusions headers car il y avait un petit problème.
Mais après quand je compile (tout devrait être) patatra ...ça compile mal:
Le debugger me met que : syntax error before "RegisterPluginHeader"
[warning]data definition has no type or storage class
pour le fichier Democ.h
et encore plein de jolies erreurs pour me démoraliser un peu plus
je poste les sources de la DLL:
Democ.c
Democ.h(rien modifié)
democ.rc (rien modifié)
Ressources.h(rien modifié)
Ensuite j'ai modifié les inclusions headers car il y avait un petit problème.
Mais après quand je compile (tout devrait être) patatra ...ça compile mal:
Le debugger me met que : syntax error before "RegisterPluginHeader"
[warning]data definition has no type or storage class
pour le fichier Democ.h
et encore plein de jolies erreurs pour me démoraliser un peu plus
je poste les sources de la DLL:
Democ.c
Code : Tout sélectionner
//============================================================================
// MODELE DE PLUGIN POUR PHOTOFILTRE ECRIT AVEC BORLAND C++ 5.02 MODIFIE POUR DEVCPP
// ENTETE MODIFIE
//#ifndef _DLL_H_
#define _DLL_H_
#if BUILDING_DLL
# define DLLIMPORT __declspec (dllexport)
#else /* Not BUILDING_DLL */
# define DLLIMPORT __declspec (dllimport)
#endif /* Not BUILDING_DLL */
// ENTETE POUR BC5 => A REVOIR POUR AUTRE COMPILATEUR
// IMPORTANT => Calling Convention = StdCall
// Type de projet Dll 32 Bits standard (Platform:Win32 Target:GUI)
// Link = "Static Mode" sinon le compilateur ne linkera pas le runtime C
//============================================================================
// INCLUSION HEADERS
#include <windows.h>
#include <windowsx.h>
#include "Ressources.h"
#include "Democ.h"
// PROTOTYPES
BOOL WINAPI DllEntryPoint(HINSTANCE hinstDll,DWORD dwReason,LPVOID plvReserved);
extern struct PluginHeader* DLLEXPORT RegisterPluginHeader(void);
extern struct PluginStruct* DLLEXPORT RegisterPluginStruct(void);
extern int DLLEXPORT RegisterCompatibility(void);
extern int DLLEXPORT Execute(void);
extern HBITMAP DLLEXPORT RegisterPluginGlyph(void);
BOOL DialogProc(HWND hWin,UINT uMsg,WPARAM wParam,LPARAM lParam);
void Affiche(void);
// VARIABLES GLOBALES
HINSTANCE hInstance;
struct PluginHeader PHeader;
struct PluginStruct PStruct;
struct SIMAGE Img;
// SPECIFIQUE PLUGIN
HWND hDlg; // Handle DialogBox
INT Couche; // Masque de couche
INT RetValue; // Retour de la boucle de message
INT IsInit; // Autorise/interdit l'affichage
HWND HROUGE; // Handle ChekBox Rouge
HWND HVERT; // Handle ChekBox Vert
HWND HBLEU; // Handle ChekBox Bleu
// DESCRIPTEURS PLUGIN
char HeaderCaption[] = {"Demo Filtre (C)"};
char HeaderVersion[] = {"Version 1.0"};
char HeaderAuthor[] = {"P@F"};
char HeaderCommentaire[] = {"Conserve ou efface les couches R-V-B.\xA\xD"
"Plugin de test écrit en C.\xA\xD"
"Nécessite PhotoFiltre 5.6 minimum."};
int HeaderPluginType = PT_FILTER;
int HeaderPluginFlag = MF_RGB_COLORS + MF_NEED_IMAGE;
//=========================================================================
// POINT D'ENTREE DU PLUGIN
//=========================================================================
#pragma argsused // Pour eviter le warning: Parameter '' is never used
BOOL WINAPI DllEntryPoint(HINSTANCE hinstDll,DWORD dwReason,LPVOID plvReserved)
{
if (dwReason == DLL_PROCESS_ATTACH) // Raison d'appel
{
hInstance = hinstDll; // Recupere l'instance dll du plugin
// Les structures a zero
ZeroMemory(&PStruct,sizeof(struct PluginStruct)); // Les structures a zero
ZeroMemory(&PHeader,sizeof(struct PluginHeader));
ZeroMemory(&Img,sizeof(struct SIMAGE));
// Intialisation de la structure d'entete du plugin
strcpy(PHeader.Caption,HeaderCaption);
strcpy(PHeader.Version,HeaderVersion);
strcpy(PHeader.Author,HeaderAuthor);
strcpy(PHeader.Commentaire,HeaderCommentaire);
PHeader.PluginType=HeaderPluginType;
PHeader.Flags=HeaderPluginFlag;
return(1); // C'est tout bon !
}
else
return(0); // Les autres raisons d'appel => Niet !
}
//=========================================================================
// FONCTION D'EXECUTION DU PLUGIN
//=========================================================================
extern int DLLEXPORT Execute(void)
{
//==== TEST DE LA VERSION PHOTOFILTRE ET DE LA COMPATIBILITE
// Si RegisterCompatibility retourne 1 ou la version ne gere pas
// la compatibilité niveau 2 => les fonctions niveau 2 sont initialisées a zéro
if (PStruct.TPrepareDialogue == 0)
{
MessageBox(NULL,
"Ce plugin est incompatible avec cette version de PhotoFiltre.\xD\xA"
"Il Nécessite la version 5.6 minimum.\xD\xA"
"Vous pouver la télécharger sur le site officiel:\xD\xA"
"http://www.photofiltre.com/","Ancienne version de PhotoFiltre",
MB_OK | MB_ICONINFORMATION);
return(0); // Une petite MsgBox pour etre poli !
};
//==== DEBUT DU FILTRE (Pour le curseur "sablier" => mettre 1 au lieu de dFALSE
(*PStruct.TBeginFilter)(HeaderCaption,dFALSE); // Signaler le debut a PhotoFiltre
// Lancer Visuel avec hParent = NUL => on laisse PhotoFiltre gerer le mode Modal
DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAIN),NULL,DialogProc); // Lancer Visuel
//==== FIN DU FILTRE
(*PStruct.TEndFilter)(); // Signaler la fin a PhotoFiltre
//==== LIBERE L'IMAGE
if ( Img.piBitmap != NULL) // Un petit test pour eviter toute mauvaise surprise
(*PStruct.TFreeDBmp)(&Img);
return(RetValue); // Valeur retournée par le Visuel (1=Modif, 0=NoModif)
}
//=========================================================================
// DialogProc => Visuel
// Boucle de message de la boite de dialogue
//=========================================================================
#pragma argsused // Pour eviter le warning: Parameter '' is never used
BOOL CALLBACK DialogProc(HWND hWin,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
switch(uMsg)
{
case WM_INITDIALOG:
//== Init VARIABLES ============================
hDlg = hWin; // Handle de la boite de dialogues
IsInit = 0; // Interdire l'affichage pour le momment
Couche = 0; // Masque de couche
RetValue = 0; // Image non modifiée
Img.piBitmap = NULL; // Pour etre sur de l'allocation future...
//== Init DIALOGBOX ============================
SendMessage(hWin,WM_SETICON,ICON_BIG,(LPARAM)LoadIcon(hInstance,(LPSTR)500));
//== Init CHECKBOX ============================
HROUGE = GetDlgItem(hWin,IDC_ROUGE); // Rouge
HVERT = GetDlgItem(hWin,IDC_VERT); // Vert
HBLEU = GetDlgItem(hWin,IDC_BLEU); // Bleu
SendMessage(HROUGE,BM_SETCHECK,BST_CHECKED,0);
SendMessage(HVERT,BM_SETCHECK,BST_CHECKED,0);
SendMessage(HBLEU,BM_SETCHECK,BST_CHECKED,0);
//== Demande Dialogue Modal a PhotoFiltre ============================
(*PStruct.TPrepareDialogue)(hDlg,DM_MODAL,dFALSE,dFALSE);
//== Creation de l'image a la bonne taille ============================
// Les Rectangles Delphi sont relatifs a l'origine
// Si il n'y a pas de selection, le rectangle decrit l'image entiere
Img.piWidth = PStruct.SelRect.right - PStruct.SelRect.left;
Img.piHeight = PStruct.SelRect.bottom - PStruct.SelRect.top;
(*PStruct.TCreateDBmp)(&Img);
if ( Img.piBitmap == NULL)
{(*PStruct.TEndFilter)();return(0);}
IsInit=1; // Permetre l'affichage
return(TRUE);
//== Fin de WM_INITDIALOG ============================
//== WM_COMMAND ======================
case WM_COMMAND:
switch(wParam)
//switch(LOWORD(wParam))
{
//== BOUTON ANNULER ======================
case IDC_CANCEL:
EndDialog(hWin,FALSE);break;
//== BOUTON OK ======================
case IDC_OK:
RetValue=1;
EndDialog(hWin,TRUE);break;
//== CHECKBOX Rouge ======================
case IDC_ROUGE:
if (SendMessage(HROUGE,BM_GETCHECK,0,0) == BST_UNCHECKED)
Couche |= 1 ;
else
Couche &= 0xFFFFFFFE;
Affiche();
break;
//== CHECKBOX Vert ======================
case IDC_VERT:
if (SendMessage(HVERT,BM_GETCHECK,0,0) == BST_UNCHECKED)
Couche |= 2;
else
Couche &= 0xFFFFFFFD;
Affiche();
break;
//== CHECKBOX Bleu ======================
case IDC_BLEU:
if (SendMessage(HBLEU,BM_GETCHECK,0,0) == BST_UNCHECKED)
Couche |= 4;
else
Couche &= 0xFFFFFFFB;
Affiche();
break;
//== DEFAULT COMMAND PROCESS MESSAGE ======================
default:
return(FALSE); // On traite pas le message
//== FIN DE WM_COMMAND ======================
} break; //==================================
//== WM_CLOSE ======================
case WM_CLOSE:
EndDialog(hWin,TRUE);
//== DEFAUT GLOBAL PROCESS MESSAGE ======================
default:
return(FALSE); // On traite pas le message
//*******************************************************************
}//== FIN DE LA BOUCLE DE MESSAGE ======================
return(TRUE); // On envois au traitement les autres messages
}
//=========================================================================
// FONCTION D'AFFICHAGE (Pour info)
//=========================================================================
void Affiche(void)
{
UINT CptX,CptY,Tx;
UCHAR *Ptr;
if (!IsInit)
return;
//==== RESTAURATION DE L'IMAGE ET RECUPERATION DANS LE BUFFER D'IMAGE
TRestoreUndoBitmap(&PStruct);
(*PStruct.TGetSelBitmap)(Img.piBitmap);
//==== MODIFICATION DU BUFFER D'IMAGE
(*PStruct.TGetScanLineDBmp)(&Img,0);
Ptr = Img.piBuffer;
Tx = Img.piWidth * 3 ;
for (CptY=0; CptY < Img.piHeight ; CptY ++)
{
for (CptX=0; CptX < Tx ; CptX +=3)
{
if ((Couche & 4))
Ptr[CptX]=0; // Bleu
if ((Couche & 2))
Ptr[CptX+1]=0; // Vert
if ((Couche & 1))
Ptr[CptX+2]=0; // Rouge
};
Ptr -= (Img.piScanlineSize);
};
//==== ACTUALISATION DE L'IMAGE
(*PStruct.TSetSelBitmap)(Img.piBitmap,SF_AUTO);
}
//=========================================================================
// FONCTIONS EXPORTEES
//=========================================================================
extern struct PluginHeader* DLLEXPORT RegisterPluginHeader(void)
{return(&PHeader);}
//-------------------------------------------------------------------------
extern struct PluginStruct* DLLEXPORT RegisterPluginStruct(void)
{return(&PStruct);}
//-------------------------------------------------------------------------
extern int DLLEXPORT RegisterCompatibility(void)
{return(NON_DELPHI);}
//-------------------------------------------------------------------------
extern HBITMAP DLLEXPORT RegisterPluginGlyph(void)
{return(LoadBitmap(hInstance,(LPTSTR)600));}
// OU => {return(LoadBitmap(hInstance,MAKEINTRESOURCE(600)));}
#endif
Democ.h(rien modifié)
Code : Tout sélectionner
#ifndef _DLL_H_
#define _DLL_H_
#if BUILDING_DLL
# define DLLIMPORT __declspec (dllexport)
#else /* Not BUILDING_DLL */
# define DLLIMPORT __declspec (dllimport)
#endif /* Not BUILDING_DLL */
//;********************************************************************
//; CONSTANTES PhotoFiltre
//;********************************************************************
#define RGBColorCount = 256 * 256 * 256 ; 16 millions de couleurs
#define MaxLongStr 256
#define MaxShortStr 64
// Compatibilité Delphi/Non Delphi
#define DELPHI 1
#define NON_DELPHI 2
// type du plugin
#define PT_FILTER 0
#define PT_IMAGE 1
#define PT_FILE_IMPORT 2
#define PT_FILE_EXPORT 3
#define PT_TOOL 4
// mode de dialogue
#define DM_MODAL 0
#define DM_PREVIEW 1
#define DM_COLOR_PICKER 2
// flags de sélection
#define SF_AUTO 0
#define SF_NONE 1
// flags pour la création d'image
#define IF_CREATE 0
#define IF_FILE 1
// flags pour l'activation du menu
#define MF_RGB_COLORS 0x00000001
#define MF_INDEXED_COLORS 0x00000002
#define MF_TRANSPARENT 0x00000004
#define MF_NOT_TRANSPARENT 0x00000008
#define MF_SELECTED 0x00000010
#define MF_NOT_SELECTED 0x00000020
#define MF_NEED_IMAGE 0x00000040
#define MF_NEED_MORE_THAN_ONE_IMAGE 0x00000080
// test sur l'extension du fichier en cours
#define MF_IMAGE_JPEG 0x00010000
#define MF_IMAGE_GIF 0x00020000
#define MF_IMAGE_PNG 0x00040000
#define MF_IMAGE_BMP 0x00080000
#define MF_IMAGE_TIFF 0x00100000
#define MF_IMAGE_PFS 0x00200000
// === CONSTANTES FALSE/TRUE POUR DELPHI
#define dFALSE 0
#define NIL NULL
//;********************************************************************
//; DESCRIPTION DE LA STRUCTURE D'IMAGE
//;********************************************************************
typedef UINT DBITMAP; // Objet Delphi TBitmap
typedef UINT DFORM; // Objet Delphi TForm
struct SIMAGE
{
UINT piSize; // Taille de la structure en Octets
UINT piWidth; // Taille X Utile en Pixels
UINT piHeight; // Taille Y Utile en Pixels
UINT piWidthSize; // Taille X Utile en Octets
UINT piScanlineSize; // Taille D'une ScanLine complete en Octets
UINT piByteCount; // NB D'octets par Pixels
UINT piDataSize; // Taille Totale du Buffer en Octets
UCHAR* piBuffer; // Adresse Buffer
DBITMAP piBitmap; // Pointeur Delphi TBitmap
HBITMAP piHandle; // Pointeur HBitmap
};
//;********************************************************************
//; DESCRIPTION DES STRUCTURES PHOTOFILTRE
//;********************************************************************
//;=== STRUCTURE D'ENTETE DU PLUGIN
struct PluginHeader
{
char Caption[MaxShortStr+1];
char Version[MaxShortStr+1];
UINT PluginType;
char Author[MaxShortStr+1];
char Commentaire[MaxShortStr+1];
char Reserved[MaxShortStr+1];
UINT Flags;
};
//;=== STRUCTURE D'EXECUTION DU PLUGIN
struct PluginStruct
{
// Compatibilité Niveau 1
HWND MainHandle;
INT ImageExists;
INT Selected;
RECT SelRect;
RECT ImgRect;
INT XP_ThemesEnabled;
INT (*TBeginFilter)(char* Message,int Sablier);
INT (*TEndFilter)(void);
INT (*TGetBitmap)(DBITMAP DelphiBitmap);
INT (*TSetBitmap)(DBITMAP DelphiBitmap);
INT (*TGetSelBitmap)(DBITMAP DelphiBitmap);
INT (*TSetSelBitmap)(DBITMAP DelphiBitmap,UINT SelectOption);
INT (*TGetTransparentColor)();
INT (*TSetTransparentColor)(UINT Couleur);
INT (*TGetColorCount)();
INT (*TSetColorCount)(INT ColorCount);
INT (*TNewImage)(DBITMAP DelphiBitmap,char* FileName,INT ImageOption,INT ColorCount,UINT TransColor);
INT (*TShowForm)(DFORM TForm,INT DialogOption,INT MainFormCenter,INT CloseWaiting);
INT (*TSetAlphaBlend)(INT AlphaRange);
INT (*TDrawSelBorder)(INT Width,UINT Couleur,INT Antialias);
INT (*TGetSelMask)(DBITMAP DelphiBitmap);
void (*TResetSaveMenu)();
INT (*TGetImgFileName)(char *PlPath,INT Taille);
INT (*TGetExePath)(char *PlPath,INT Taille);
INT (*TGetOpenPath)(char *PlPath,INT Taille);
INT (*TGetSavePath)(char *PlPath,INT Taille);
INT (*TGetPluginPath)(char *PlPath,INT Taille);
INT (*TGetIniFile)(char *PlPath,INT Taille);
INT (*TSetImgFileName)(char *PlPath);
INT (*TGetBitmapByName)(DBITMAP DelphiBitmap,char* FileName);
INT (*TGetThumb)(DBITMAP DelphiBitmap,UINT BkColor,
INT BorderSize,INT ShadowSize,UINT ShadowBkColor,RECT* R);
INT (*TGetThumbByName)(DBITMAP DelphiBitmap,char* FileName,UINT BkColor,
INT BorderSize,INT ShadowSize,UINT ShadowBkColor,RECT* R);
INT (*TEnumImages)(char* FileName,INT Width,INT Height,INT NbColor,UINT TransColor);
// Compatibilité Niveau 2
INT (*TPrepareDialogue)(HWND HandleF,INT DialogOption,INT MainFormCenter,INT CloseWaiting);
INT (*TCreateDBmp)(struct SIMAGE *BitmapIn);
INT (*TFreeDBmp)(struct SIMAGE *BitmapIn);
HDC (*TReleaseHandleDBmp)(struct SIMAGE *BitmapIn);
INT (*TGetScanLineDBmp)(struct SIMAGE *BitmapIn,UINT Row);
INT (*Reserve1)(void);
INT (*Reserve2)(void);
INT (*Reserve3)(void);
INT (*Reserve4)(void);
INT (*Reserve5)(void);
};
//=========================================================================
// FONCTIONS AUXILIAIRES
//=========================================================================
void TRestoreUndoBitmap(struct PluginStruct* Pls);
void TRestoreUndoBitmap(struct PluginStruct* Pls)
{(*Pls->TSetBitmap)(NULL);}
#endif
Code : Tout sélectionner
STYLE DS_SYSMODAL | DS_3DLOOK | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "test conversion Colorpicker (C)"
FONT 8, "MS Sans Serif"
{
CONTROL "&Annuler", IDC_CANCEL, "button", BS_PUSHBUTTON | BS_CENTER | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 4, 60, 46, 14
CONTROL "&Ok", IDC_OK, "button", BS_PUSHBUTTON | BS_CENTER | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 58, 60, 46, 14
CONTROL "Afficher La Couche &Verte", IDC_VERT, "button", BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 4, 24, 92, 9
CONTROL "Afficher La Couche &Rouge", IDC_ROUGE, "button", BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 4, 8, 96, 9
CONTROL "Afficher La Couche &Bleue", IDC_BLEU, "button", BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 4, 40, 96, 9
CONTROL "Frame1", IDC_STATICFRAME1, "static", SS_ETCHEDFRAME | WS_CHILD | WS_VISIBLE, 4, 56, 100, 1
}
//=================================================
//== ICONES
500 ICON MOVEABLE PURE LOADONCALL DISCARDABLE "Democ.ico"
//=================================================
//== BITMAP
600 BITMAP MOVEABLE PURE LOADONCALL DISCARDABLE "Democ.bmp"
Code : Tout sélectionner
#define IDD_MAIN 1
#define IDI_BITMAP 600
#define IDI_ICON1 500
#define IDC_STATICFRAME1 103
#define IDC_CANCEL 102
#define IDC_OK 101
#define IDC_BLEU 107
#define IDC_VERT 106
#define IDC_ROUGE 105
#define IDC_CHECKBOX1 105
#define IDC_CHECKBOX2 106
#define IDC_CHECKBOX3 107
-
- Développeur(se)|Développeur|Développeuse
- Messages : 974
- Inscription : 28 avr. 2004 8:45
- Version de PhotoFiltre : 6
- Système d'exploitation : xp seven
- Localisation : 78