Accueil > Forum > > > > Control Perso, comment faire ??
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
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|