begin process at 2012 05 28 22:44:52
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Control Perso, comment faire ??


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Control Perso, comment faire ??

mardi 8 avril 2003 à 16:02:30 | Control Perso, comment faire ??

crocejf2000

Salut a tous,

Dans mon prog, il faut que je puisse configurer l'impression du header, footer, numero de ligne, sachant que l'utilisateur a le choix de mettre n'importe ou ou il le veut (header gauche,milieu,droit et footer gauche,milieu,bas) le nom du programme ou la date ou le nombre de pages. Pour le traitement c'est bon, mais c'est pour l'UI que je sais pas trop comment faire : comment je peut creer un control qui ressemble a une mini-feuille et voir dedans ou sont placer le infos, et clicker dessus pour en changer. J'avais penser faire ca avec des Combo-box mais c'est vraiment pas top.

Il me faidrai juste un point de départ et apres je devrais me débrouiller. (de quel classe doit-je dériver, etc...)


Merci a vous,Hart
mardi 8 avril 2003 à 23:43:48 | Re : Control Perso, comment faire ??

Kaid


En fait dérive un contrôle de CStatic et surcharge le paint pour afficher ce que tu veux. Bon courage :-)

Kaid - kaid.fr.st

-------------------------------
Réponse au message :
-------------------------------

> Salut a tous,
>
> Dans mon prog, il faut que je puisse configurer l'impression du header, footer, numero de ligne, sachant que l'utilisateur a le choix de mettre n'importe ou ou il le veut (header gauche,milieu,droit et footer gauche,milieu,bas) le nom du programme ou la date ou le nombre de pages. Pour le traitement c'est bon, mais c'est pour l'UI que je sais pas trop comment faire : comment je peut creer un control qui ressemble a une mini-feuille et voir dedans ou sont placer le infos, et clicker dessus pour en changer. J'avais penser faire ca avec des Combo-box mais c'est vraiment pas top.
>
> Il me faidrai juste un point de départ et apres je devrais me débrouiller. (de quel classe doit-je dériver, etc...)
>
>
> Merci a vous,Hart
mercredi 9 avril 2003 à 10:04:58 | Re : Control Perso, comment faire ??

crocejf2000

J'arrive bien a afficher a peut pres ce que je veux, mais j'arrive pas a recuperer les evenements (click,et...). J'ai encore jamais fait de controles perso donc c'est un peut galere pour moi :

#include "stdafx.h"
#include "Control.h"
#include "MiniFeuille.h"


// CMiniFeuille

IMPLEMENT_DYNAMIC(CMiniFeuille, CStatic)
CMiniFeuille::CMiniFeuille()
{
}

CMiniFeuille::~CMiniFeuille()
{
}


BEGIN_MESSAGE_MAP(CMiniFeuille, CStatic)
ON_WM_PAINT()
ON_WM_LBUTTONDOWN()
END_MESSAGE_MAP()



// Gestionnaires de messages CMiniFeuille

LRESULT CMiniFeuille::WindowProc(UINT message,WPARAM wParam,LPARAM lParam)
{
switch (message)
{
case WM_MOUSEMOVE:
Beep(2000,10);


}


return CStatic::WindowProc(message,wParam,lParam);
}

void CMiniFeuille::OnPaint()
{
CPaintDC dc(this);
CRect rect;
GetClientRect(rect);

CString s = "Hello, Windows!";
dc.SetTextAlign(TA_BASELINE | TA_CENTER);
dc.SetTextColor(::GetSysColor(COLOR_WINDOWTEXT));
dc.SetBkMode(TRANSPARENT);
dc.Rectangle(rect.left,rect.top,rect.right,rect.bottom);
dc.TextOut(rect.right / 2, rect.bottom / 2, s);

}

void CMiniFeuille::OnLButtonDown(UINT nFlags, CPoint point)
{

}


Il passe bien dans le WindowProc et le OnPaint mais pas dans OnLButtonDown. Je sais pas si ca un rapport avec CStatic qui ne renvoi pas d'evenement de click. Sinon, pourquoi ne pas dériver ma classe de CWnd ?

Merci pour ton aide precieuse ...

Hart


-------------------------------
Réponse au message :
-------------------------------

>
> En fait dérive un contrôle de CStatic et surcharge le paint pour afficher ce que tu veux. Bon courage :-)
>
> Kaid - kaid.fr.st
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Salut a tous,
> >
> > Dans mon prog, il faut que je puisse configurer l'impression du header, footer, numero de ligne, sachant que l'utilisateur a le choix de mettre n'importe ou ou il le veut (header gauche,milieu,droit et footer gauche,milieu,bas) le nom du programme ou la date ou le nombre de pages. Pour le traitement c'est bon, mais c'est pour l'UI que je sais pas trop comment faire : comment je peut creer un control qui ressemble a une mini-feuille et voir dedans ou sont placer le infos, et clicker dessus pour en changer. J'avais penser faire ca avec des Combo-box mais c'est vraiment pas top.
> >
> > Il me faidrai juste un point de départ et apres je devrais me débrouiller. (de quel classe doit-je dériver, etc...)
> >
> >
> > Merci a vous,Hart
>
mercredi 9 avril 2003 à 10:19:22 | Re : Control Perso, comment faire ??

Kaid


Oui c'est vrai, tu peux partir de CWnd. Par contre, si je peux te donner un conseil, ne mélange pas les deux façons de récupérer un message à savoir la surcharge de WindowProc et l'utilisation de MESSAGE_MAP. MESSAGE_MAP est plus simple.

Mais qu'est ce que tu veux faire avec l'événement click-gauche ? Je croyais que tu fesais seulement un contrôle d'affichage.

Kaid - kaid.fr.st

-------------------------------
Réponse au message :
-------------------------------

> J'arrive bien a afficher a peut pres ce que je veux, mais j'arrive pas a recuperer les evenements (click,et...). J'ai encore jamais fait de controles perso donc c'est un peut galere pour moi :
>
> #include "stdafx.h"
> #include "Control.h"
> #include "MiniFeuille.h"
>
>
> // CMiniFeuille
>
> IMPLEMENT_DYNAMIC(CMiniFeuille, CStatic)
> CMiniFeuille::CMiniFeuille()
> {
> }
>
> CMiniFeuille::~CMiniFeuille()
> {
> }
>
>
> BEGIN_MESSAGE_MAP(CMiniFeuille, CStatic)
> ON_WM_PAINT()
> ON_WM_LBUTTONDOWN()
> END_MESSAGE_MAP()
>
>
>
> // Gestionnaires de messages CMiniFeuille
>
> LRESULT CMiniFeuille::WindowProc(UINT message,WPARAM wParam,LPARAM lParam)
> {
> switch (message)
> {
> case WM_MOUSEMOVE:
> Beep(2000,10);
>
>
> }
>
>
> return CStatic::WindowProc(message,wParam,lParam);
> }
>
> void CMiniFeuille::OnPaint()
> {
> CPaintDC dc(this);
> CRect rect;
> GetClientRect(rect);
>
> CString s = "Hello, Windows!";
> dc.SetTextAlign(TA_BASELINE | TA_CENTER);
> dc.SetTextColor(::GetSysColor(COLOR_WINDOWTEXT));
> dc.SetBkMode(TRANSPARENT);
> dc.Rectangle(rect.left,rect.top,rect.right,rect.bottom);
> dc.TextOut(rect.right / 2, rect.bottom / 2, s);
>
> }
>
> void CMiniFeuille::OnLButtonDown(UINT nFlags, CPoint point)
> {
>
> }
>
>
> Il passe bien dans le WindowProc et le OnPaint mais pas dans OnLButtonDown. Je sais pas si ca un rapport avec CStatic qui ne renvoi pas d'evenement de click. Sinon, pourquoi ne pas dériver ma classe de CWnd ?
>
> Merci pour ton aide precieuse ...
>
> Hart
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> >
> > En fait dérive un contrôle de CStatic et surcharge le paint pour afficher ce que tu veux. Bon courage :-)
> >
> > Kaid - kaid.fr.st
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > Salut a tous,
> > >
> > > Dans mon prog, il faut que je puisse configurer l'impression du header, footer, numero de ligne, sachant que l'utilisateur a le choix de mettre n'importe ou ou il le veut (header gauche,milieu,droit et footer gauche,milieu,bas) le nom du programme ou la date ou le nombre de pages. Pour le traitement c'est bon, mais c'est pour l'UI que je sais pas trop comment faire : comment je peut creer un control qui ressemble a une mini-feuille et voir dedans ou sont placer le infos, et clicker dessus pour en changer. J'avais penser faire ca avec des Combo-box mais c'est vraiment pas top.
> > >
> > > Il me faidrai juste un point de départ et apres je devrais me débrouiller. (de quel classe doit-je dériver, etc...)
> > >
> > >
> > > Merci a vous,Hart
> >
>
mercredi 9 avril 2003 à 10:28:31 | Re : Control Perso, comment faire ??

crocejf2000

J'avais mélanger les 2 façon juste pour le test...
En fait il me faut le click gauche car le control sert a afficher une sorte de mini-page avec header et footer, et il faut que quand je click sur l'header ou le footer de cette mini page, une combo-box apparaisse pour faire le choix de ce que j'y met. En résumé, il faut que je recupere les evenements (click,etc...). Est-ce que ca peut marcher avec CStatic ou il faut que je le fasse avec CWnd (comment faire ??).

Thanks, Hart


-------------------------------
Réponse au message :
-------------------------------

>
> Oui c'est vrai, tu peux partir de CWnd. Par contre, si je peux te donner un conseil, ne mélange pas les deux façons de récupérer un message à savoir la surcharge de WindowProc et l'utilisation de MESSAGE_MAP. MESSAGE_MAP est plus simple.
>
> Mais qu'est ce que tu veux faire avec l'événement click-gauche ? Je croyais que tu fesais seulement un contrôle d'affichage.
>
> Kaid - kaid.fr.st
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > J'arrive bien a afficher a peut pres ce que je veux, mais j'arrive pas a recuperer les evenements (click,et...). J'ai encore jamais fait de controles perso donc c'est un peut galere pour moi :
> >
> > #include "stdafx.h"
> > #include "Control.h"
> > #include "MiniFeuille.h"
> >
> >
> > // CMiniFeuille
> >
> > IMPLEMENT_DYNAMIC(CMiniFeuille, CStatic)
> > CMiniFeuille::CMiniFeuille()
> > {
> > }
> >
> > CMiniFeuille::~CMiniFeuille()
> > {
> > }
> >
> >
> > BEGIN_MESSAGE_MAP(CMiniFeuille, CStatic)
> > ON_WM_PAINT()
> > ON_WM_LBUTTONDOWN()
> > END_MESSAGE_MAP()
> >
> >
> >
> > // Gestionnaires de messages CMiniFeuille
> >
> > LRESULT CMiniFeuille::WindowProc(UINT message,WPARAM wParam,LPARAM lParam)
> > {
> > switch (message)
> > {
> > case WM_MOUSEMOVE:
> > Beep(2000,10);
> >
> >
> > }
> >
> >
> > return CStatic::WindowProc(message,wParam,lParam);
> > }
> >
> > void CMiniFeuille::OnPaint()
> > {
> > CPaintDC dc(this);
> > CRect rect;
> > GetClientRect(rect);
> >
> > CString s = "Hello, Windows!";
> > dc.SetTextAlign(TA_BASELINE | TA_CENTER);
> > dc.SetTextColor(::GetSysColor(COLOR_WINDOWTEXT));
> > dc.SetBkMode(TRANSPARENT);
> > dc.Rectangle(rect.left,rect.top,rect.right,rect.bottom);
> > dc.TextOut(rect.right / 2, rect.bottom / 2, s);
> >
> > }
> >
> > void CMiniFeuille::OnLButtonDown(UINT nFlags, CPoint point)
> > {
> >
> > }
> >
> >
> > Il passe bien dans le WindowProc et le OnPaint mais pas dans OnLButtonDown. Je sais pas si ca un rapport avec CStatic qui ne renvoi pas d'evenement de click. Sinon, pourquoi ne pas dériver ma classe de CWnd ?
> >
> > Merci pour ton aide precieuse ...
> >
> > Hart
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > >
> > > En fait dérive un contrôle de CStatic et surcharge le paint pour afficher ce que tu veux. Bon courage :-)
> > >
> > > Kaid - kaid.fr.st
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > Salut a tous,
> > > >
> > > > Dans mon prog, il faut que je puisse configurer l'impression du header, footer, numero de ligne, sachant que l'utilisateur a le choix de mettre n'importe ou ou il le veut (header gauche,milieu,droit et footer gauche,milieu,bas) le nom du programme ou la date ou le nombre de pages. Pour le traitement c'est bon, mais c'est pour l'UI que je sais pas trop comment faire : comment je peut creer un control qui ressemble a une mini-feuille et voir dedans ou sont placer le infos, et clicker dessus pour en changer. J'avais penser faire ca avec des Combo-box mais c'est vraiment pas top.
> > > >
> > > > Il me faidrai juste un point de départ et apres je devrais me débrouiller. (de quel classe doit-je dériver, etc...)
> > > >
> > > >
> > > > Merci a vous,Hart
> > >
> >
>
mercredi 9 avril 2003 à 12:02:09 | Re : Control Perso, comment faire ??

Kaid


Le plus simple est donc de dériver un contrôle de CWnd. Dans ce contrôle, tu surcharges le paint et le click gauche. Il faut ensuite que tu testes dans quelle zone de la mini feuille l'utilisateur a clické et ensuite je pense que le plus simple c'est d'ouvrir une CDialog où l'utilisateur pourra paramètrer son impression. A toi de voir ensuite si le texte saisie par l'utilisateur est affichable sur ta mini feuille. Si il a saisie trois tonnes de texte, l'affichage sera dur.

Kaid - kaid.fr.st

-------------------------------
Réponse au message :
-------------------------------

> J'avais mélanger les 2 façon juste pour le test...
> En fait il me faut le click gauche car le control sert a afficher une sorte de mini-page avec header et footer, et il faut que quand je click sur l'header ou le footer de cette mini page, une combo-box apparaisse pour faire le choix de ce que j'y met. En résumé, il faut que je recupere les evenements (click,etc...). Est-ce que ca peut marcher avec CStatic ou il faut que je le fasse avec CWnd (comment faire ??).
>
> Thanks, Hart
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> >
> > Oui c'est vrai, tu peux partir de CWnd. Par contre, si je peux te donner un conseil, ne mélange pas les deux façons de récupérer un message à savoir la surcharge de WindowProc et l'utilisation de MESSAGE_MAP. MESSAGE_MAP est plus simple.
> >
> > Mais qu'est ce que tu veux faire avec l'événement click-gauche ? Je croyais que tu fesais seulement un contrôle d'affichage.
> >
> > Kaid - kaid.fr.st
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > J'arrive bien a afficher a peut pres ce que je veux, mais j'arrive pas a recuperer les evenements (click,et...). J'ai encore jamais fait de controles perso donc c'est un peut galere pour moi :
> > >
> > > #include "stdafx.h"
> > > #include "Control.h"
> > > #include "MiniFeuille.h"
> > >
> > >
> > > // CMiniFeuille
> > >
> > > IMPLEMENT_DYNAMIC(CMiniFeuille, CStatic)
> > > CMiniFeuille::CMiniFeuille()
> > > {
> > > }
> > >
> > > CMiniFeuille::~CMiniFeuille()
> > > {
> > > }
> > >
> > >
> > > BEGIN_MESSAGE_MAP(CMiniFeuille, CStatic)
> > > ON_WM_PAINT()
> > > ON_WM_LBUTTONDOWN()
> > > END_MESSAGE_MAP()
> > >
> > >
> > >
> > > // Gestionnaires de messages CMiniFeuille
> > >
> > > LRESULT CMiniFeuille::WindowProc(UINT message,WPARAM wParam,LPARAM lParam)
> > > {
> > > switch (message)
> > > {
> > > case WM_MOUSEMOVE:
> > > Beep(2000,10);
> > >
> > >
> > > }
> > >
> > >
> > > return CStatic::WindowProc(message,wParam,lParam);
> > > }
> > >
> > > void CMiniFeuille::OnPaint()
> > > {
> > > CPaintDC dc(this);
> > > CRect rect;
> > > GetClientRect(rect);
> > >
> > > CString s = "Hello, Windows!";
> > > dc.SetTextAlign(TA_BASELINE | TA_CENTER);
> > > dc.SetTextColor(::GetSysColor(COLOR_WINDOWTEXT));
> > > dc.SetBkMode(TRANSPARENT);
> > > dc.Rectangle(rect.left,rect.top,rect.right,rect.bottom);
> > > dc.TextOut(rect.right / 2, rect.bottom / 2, s);
> > >
> > > }
> > >
> > > void CMiniFeuille::OnLButtonDown(UINT nFlags, CPoint point)
> > > {
> > >
> > > }
> > >
> > >
> > > Il passe bien dans le WindowProc et le OnPaint mais pas dans OnLButtonDown. Je sais pas si ca un rapport avec CStatic qui ne renvoi pas d'evenement de click. Sinon, pourquoi ne pas dériver ma classe de CWnd ?
> > >
> > > Merci pour ton aide precieuse ...
> > >
> > > Hart
> > >
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > >
> > > > En fait dérive un contrôle de CStatic et surcharge le paint pour afficher ce que tu veux. Bon courage :-)
> > > >
> > > > Kaid - kaid.fr.st
> > > >
> > > > -------------------------------
> > > > Réponse au message :
> > > > -------------------------------
> > > >
> > > > > Salut a tous,
> > > > >
> > > > > Dans mon prog, il faut que je puisse configurer l'impression du header, footer, numero de ligne, sachant que l'utilisateur a le choix de mettre n'importe ou ou il le veut (header gauche,milieu,droit et footer gauche,milieu,bas) le nom du programme ou la date ou le nombre de pages. Pour le traitement c'est bon, mais c'est pour l'UI que je sais pas trop comment faire : comment je peut creer un control qui ressemble a une mini-feuille et voir dedans ou sont placer le infos, et clicker dessus pour en changer. J'avais penser faire ca avec des Combo-box mais c'est vraiment pas top.
> > > > >
> > > > > Il me faidrai juste un point de départ et apres je devrais me débrouiller. (de quel classe doit-je dériver, etc...)
> > > > >
> > > > >
> > > > > Merci a vous,Hart
> > > >
> > >
> >
>
mercredi 9 avril 2003 à 13:25:38 | Re : Control Perso, comment faire ??

crocejf2000

J'ai vu dans la MSDN qu'il était préferable de créer un control ActiveX, qu'en pense tu? J'ai commencé avec l'appwizard et je pense (j'espere) avoir des résultat.

Sinon merci pour ton aide, a+
Hart


-------------------------------
Réponse au message :
-------------------------------

>
> Le plus simple est donc de dériver un contrôle de CWnd. Dans ce contrôle, tu surcharges le paint et le click gauche. Il faut ensuite que tu testes dans quelle zone de la mini feuille l'utilisateur a clické et ensuite je pense que le plus simple c'est d'ouvrir une CDialog où l'utilisateur pourra paramètrer son impression. A toi de voir ensuite si le texte saisie par l'utilisateur est affichable sur ta mini feuille. Si il a saisie trois tonnes de texte, l'affichage sera dur.
>
> Kaid - kaid.fr.st
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > J'avais mélanger les 2 façon juste pour le test...
> > En fait il me faut le click gauche car le control sert a afficher une sorte de mini-page avec header et footer, et il faut que quand je click sur l'header ou le footer de cette mini page, une combo-box apparaisse pour faire le choix de ce que j'y met. En résumé, il faut que je recupere les evenements (click,etc...). Est-ce que ca peut marcher avec CStatic ou il faut que je le fasse avec CWnd (comment faire ??).
> >
> > Thanks, Hart
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > >
> > > Oui c'est vrai, tu peux partir de CWnd. Par contre, si je peux te donner un conseil, ne mélange pas les deux façons de récupérer un message à savoir la surcharge de WindowProc et l'utilisation de MESSAGE_MAP. MESSAGE_MAP est plus simple.
> > >
> > > Mais qu'est ce que tu veux faire avec l'événement click-gauche ? Je croyais que tu fesais seulement un contrôle d'affichage.
> > >
> > > Kaid - kaid.fr.st
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > J'arrive bien a afficher a peut pres ce que je veux, mais j'arrive pas a recuperer les evenements (click,et...). J'ai encore jamais fait de controles perso donc c'est un peut galere pour moi :
> > > >
> > > > #include "stdafx.h"
> > > > #include "Control.h"
> > > > #include "MiniFeuille.h"
> > > >
> > > >
> > > > // CMiniFeuille
> > > >
> > > > IMPLEMENT_DYNAMIC(CMiniFeuille, CStatic)
> > > > CMiniFeuille::CMiniFeuille()
> > > > {
> > > > }
> > > >
> > > > CMiniFeuille::~CMiniFeuille()
> > > > {
> > > > }
> > > >
> > > >
> > > > BEGIN_MESSAGE_MAP(CMiniFeuille, CStatic)
> > > > ON_WM_PAINT()
> > > > ON_WM_LBUTTONDOWN()
> > > > END_MESSAGE_MAP()
> > > >
> > > >
> > > >
> > > > // Gestionnaires de messages CMiniFeuille
> > > >
> > > > LRESULT CMiniFeuille::WindowProc(UINT message,WPARAM wParam,LPARAM lParam)
> > > > {
> > > > switch (message)
> > > > {
> > > > case WM_MOUSEMOVE:
> > > > Beep(2000,10);
> > > >
> > > >
> > > > }
> > > >
> > > >
> > > > return CStatic::WindowProc(message,wParam,lParam);
> > > > }
> > > >
> > > > void CMiniFeuille::OnPaint()
> > > > {
> > > > CPaintDC dc(this);
> > > > CRect rect;
> > > > GetClientRect(rect);
> > > >
> > > > CString s = "Hello, Windows!";
> > > > dc.SetTextAlign(TA_BASELINE | TA_CENTER);
> > > > dc.SetTextColor(::GetSysColor(COLOR_WINDOWTEXT));
> > > > dc.SetBkMode(TRANSPARENT);
> > > > dc.Rectangle(rect.left,rect.top,rect.right,rect.bottom);
> > > > dc.TextOut(rect.right / 2, rect.bottom / 2, s);
> > > >
> > > > }
> > > >
> > > > void CMiniFeuille::OnLButtonDown(UINT nFlags, CPoint point)
> > > > {
> > > >
> > > > }
> > > >
> > > >
> > > > Il passe bien dans le WindowProc et le OnPaint mais pas dans OnLButtonDown. Je sais pas si ca un rapport avec CStatic qui ne renvoi pas d'evenement de click. Sinon, pourquoi ne pas dériver ma classe de CWnd ?
> > > >
> > > > Merci pour ton aide precieuse ...
> > > >
> > > > Hart
> > > >
> > > >
> > > > -------------------------------
> > > > Réponse au message :
> > > > -------------------------------
> > > >
> > > > >
> > > > > En fait dérive un contrôle de CStatic et surcharge le paint pour afficher ce que tu veux. Bon courage :-)
> > > > >
> > > > > Kaid - kaid.fr.st
> > > > >
> > > > > -------------------------------
> > > > > Réponse au message :
> > > > > -------------------------------
> > > > >
> > > > > > Salut a tous,
> > > > > >
> > > > > > Dans mon prog, il faut que je puisse configurer l'impression du header, footer, numero de ligne, sachant que l'utilisateur a le choix de mettre n'importe ou ou il le veut (header gauche,milieu,droit et footer gauche,milieu,bas) le nom du programme ou la date ou le nombre de pages. Pour le traitement c'est bon, mais c'est pour l'UI que je sais pas trop comment faire : comment je peut creer un control qui ressemble a une mini-feuille et voir dedans ou sont placer le infos, et clicker dessus pour en changer. J'avais penser faire ca avec des Combo-box mais c'est vraiment pas top.
> > > > > >
> > > > > > Il me faidrai juste un point de départ et apres je devrais me débrouiller. (de quel classe doit-je dériver, etc...)
> > > > > >
> > > > > >
> > > > > > Merci a vous,Hart
> > > > >
> > > >
> > >
> >
>
mercredi 9 avril 2003 à 13:32:02 | Re : Control Perso, comment faire ??

Kaid


Je trouve la solution pas géniale. ActiveX est plus long à mettre en place et à développer qu'un simple subclassing.
L'intérêt d'ActiveX est de partager les composants entres VB, VC++, IE, ..., mais il ne faut pas oublier d'enregistrer le contrôle sur la machine cliente.

Kaid - kaid.fr.st

-------------------------------
Réponse au message :
-------------------------------

> J'ai vu dans la MSDN qu'il était préferable de créer un control ActiveX, qu'en pense tu? J'ai commencé avec l'appwizard et je pense (j'espere) avoir des résultat.
>
> Sinon merci pour ton aide, a+
> Hart
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> >
> > Le plus simple est donc de dériver un contrôle de CWnd. Dans ce contrôle, tu surcharges le paint et le click gauche. Il faut ensuite que tu testes dans quelle zone de la mini feuille l'utilisateur a clické et ensuite je pense que le plus simple c'est d'ouvrir une CDialog où l'utilisateur pourra paramètrer son impression. A toi de voir ensuite si le texte saisie par l'utilisateur est affichable sur ta mini feuille. Si il a saisie trois tonnes de texte, l'affichage sera dur.
> >
> > Kaid - kaid.fr.st
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > J'avais mélanger les 2 façon juste pour le test...
> > > En fait il me faut le click gauche car le control sert a afficher une sorte de mini-page avec header et footer, et il faut que quand je click sur l'header ou le footer de cette mini page, une combo-box apparaisse pour faire le choix de ce que j'y met. En résumé, il faut que je recupere les evenements (click,etc...). Est-ce que ca peut marcher avec CStatic ou il faut que je le fasse avec CWnd (comment faire ??).
> > >
> > > Thanks, Hart
> > >
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > >
> > > > Oui c'est vrai, tu peux partir de CWnd. Par contre, si je peux te donner un conseil, ne mélange pas les deux façons de récupérer un message à savoir la surcharge de WindowProc et l'utilisation de MESSAGE_MAP. MESSAGE_MAP est plus simple.
> > > >
> > > > Mais qu'est ce que tu veux faire avec l'événement click-gauche ? Je croyais que tu fesais seulement un contrôle d'affichage.
> > > >
> > > > Kaid - kaid.fr.st
> > > >
> > > > -------------------------------
> > > > Réponse au message :
> > > > -------------------------------
> > > >
> > > > > J'arrive bien a afficher a peut pres ce que je veux, mais j'arrive pas a recuperer les evenements (click,et...). J'ai encore jamais fait de controles perso donc c'est un peut galere pour moi :
> > > > >
> > > > > #include "stdafx.h"
> > > > > #include "Control.h"
> > > > > #include "MiniFeuille.h"
> > > > >
> > > > >
> > > > > // CMiniFeuille
> > > > >
> > > > > IMPLEMENT_DYNAMIC(CMiniFeuille, CStatic)
> > > > > CMiniFeuille::CMiniFeuille()
> > > > > {
> > > > > }
> > > > >
> > > > > CMiniFeuille::~CMiniFeuille()
> > > > > {
> > > > > }
> > > > >
> > > > >
> > > > > BEGIN_MESSAGE_MAP(CMiniFeuille, CStatic)
> > > > > ON_WM_PAINT()
> > > > > ON_WM_LBUTTONDOWN()
> > > > > END_MESSAGE_MAP()
> > > > >
> > > > >
> > > > >
> > > > > // Gestionnaires de messages CMiniFeuille
> > > > >
> > > > > LRESULT CMiniFeuille::WindowProc(UINT message,WPARAM wParam,LPARAM lParam)
> > > > > {
> > > > > switch (message)
> > > > > {
> > > > > case WM_MOUSEMOVE:
> > > > > Beep(2000,10);
> > > > >
> > > > >
> > > > > }
> > > > >
> > > > >
> > > > > return CStatic::WindowProc(message,wParam,lParam);
> > > > > }
> > > > >
> > > > > void CMiniFeuille::OnPaint()
> > > > > {
> > > > > CPaintDC dc(this);
> > > > > CRect rect;
> > > > > GetClientRect(rect);
> > > > >
> > > > > CString s = "Hello, Windows!";
> > > > > dc.SetTextAlign(TA_BASELINE | TA_CENTER);
> > > > > dc.SetTextColor(::GetSysColor(COLOR_WINDOWTEXT));
> > > > > dc.SetBkMode(TRANSPARENT);
> > > > > dc.Rectangle(rect.left,rect.top,rect.right,rect.bottom);
> > > > > dc.TextOut(rect.right / 2, rect.bottom / 2, s);
> > > > >
> > > > > }
> > > > >
> > > > > void CMiniFeuille::OnLButtonDown(UINT nFlags, CPoint point)
> > > > > {
> > > > >
> > > > > }
> > > > >
> > > > >
> > > > > Il passe bien dans le WindowProc et le OnPaint mais pas dans OnLButtonDown. Je sais pas si ca un rapport avec CStatic qui ne renvoi pas d'evenement de click. Sinon, pourquoi ne pas dériver ma classe de CWnd ?
> > > > >
> > > > > Merci pour ton aide precieuse ...
> > > > >
> > > > > Hart
> > > > >
> > > > >
> > > > > -------------------------------
> > > > > Réponse au message :
> > > > > -------------------------------
> > > > >
> > > > > >
> > > > > > En fait dérive un contrôle de CStatic et surcharge le paint pour afficher ce que tu veux. Bon courage :-)
> > > > > >
> > > > > > Kaid - kaid.fr.st
> > > > > >
> > > > > > -------------------------------
> > > > > > Réponse au message :
> > > > > > -------------------------------
> > > > > >
> > > > > > > Salut a tous,
> > > > > > >
> > > > > > > Dans mon prog, il faut que je puisse configurer l'impression du header, footer, numero de ligne, sachant que l'utilisateur a le choix de mettre n'importe ou ou il le veut (header gauche,milieu,droit et footer gauche,milieu,bas) le nom du programme ou la date ou le nombre de pages. Pour le traitement c'est bon, mais c'est pour l'UI que je sais pas trop comment faire : comment je peut creer un control qui ressemble a une mini-feuille et voir dedans ou sont placer le infos, et clicker dessus pour en changer. J'avais penser faire ca avec des Combo-box mais c'est vraiment pas top.
> > > > > > >
> > > > > > > Il me faidrai juste un point de départ et apres je devrais me débrouiller. (de quel classe doit-je dériver, etc...)
> > > > > > >
> > > > > > >
> > > > > > > Merci a vous,Hart
> > > > > >
> > > > >
> > > >
> > >
> >
>


Cette discussion est classée dans : control, perso, gauche, header, footer


Répondre à ce message

Sujets en rapport avec ce message

la souris [ par Adeon ] salut ! j'ai un ptit probleme, je suis en train de creer un jeu, mon personnage tourne sur lui meme avec les coordonees X de la souris, en effet, qua Header control [ par pinos ] Bj - Je cherche des infos sur création et gestion d'un headers controls (en dev C++ / pas en Visual C++)(la boite je sais la créer, lui mettre les tit le handle d'un control static? [ par blackwizzard ] comment connaitre le handle ou HWND d'une zone "Static" contenant une image en mode fenetré?merci d'avance! Vérifier un header de fichier... [ par MorZong ] Salut,Voilà j'ai créer un programme (simple, pas avec API) de cryptage tout simple et je voudrais qu'il ait sont propre genre de fichier. Alors j'ai m Liste de control sous Vc++ 6.0 [ par Miboboio ] Je doit afficher un nombre indeterminer de control,les un en dessous des autres(le nombre depend des info que je dois afficher)Comment est il possible ouverture de fichier de texture en .BMP [ par steph76 ] voila je developement en ce moment mon moteur3d pour 1 jeux.Le probleme c'est la fonction d'ouverture de fichier.BMP. Elle fonctionne trés bien sur la list control [ par soshell ] Bonjour!J'ai un projet à finir dans 2 jours ( je sais c pas malin...) et j'ai commencé la prog windows hier, c pour ca ke j'ose mettre ce post dans au position d'un control [ par Xs ] salut !!comment on peut récuperer la position X,Y d'un objet et sa taille (longueur, largeur);j'entend en fait par objet, un bouton.merci [API] graphique [ par Xs ] salut !bon, ca fait un bail que j'aimerai faire des graphique en C++. Mais la, je m'y attaque serieusement.la meilleur illustration de ce que je dis s IP Address Control [ par zeratul67 ] Voila, c un common control que j'arrive pas à utiliser.----------- Extrait du code ---------------------INITCOMMONCONTROLSEX lpInitCtrls;lpInitCtrls.d


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,374 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales