Merci beaucoup pour ta réponse.
Comme expliqué auparavant, j’ai repris un exemple d’une lib pour générer des fichiers dxf (drawing exchange format) et de plus je commence avec les MFC
Après différents essai, j’ai compris mon problème : ma fenêtre principale a un control de type picture. Dans mes essais de codes, je n’arrive pas à obtenir un handle du contrôle picture, mais j’obtiens celui de ma fenêtre…
Il y a quand même quelque chose que je ne comprend pas dans la classe CdrawingView : CtestDlg (fenêtre principale) initialise bien le contrôle IDC_DRAWINGWINDOW par :
DDX_Control(pDX, IDC_DRAWINGWINDOW, m_DrawingWindow);
La méthode CdrawingView ::OnPaint initialise bien le bon handle avec le code indiqué au dessus, alors que le code suivant me donne le handle de ma fenêtre :
1 2 3 4 5 6
| BOOL CDrawing::MoveNailText(Str_nail *pNail, num_layer layer, double NewX, double NewY )
{
....
CPaintDC dc(m_pDrawingView); // Access à la classe CDrawingView
....
} |
Je pensais qu’il suffisait d’initialiser l’instance de dc avec CDrawingView pour obtenir le bon handle.
Ne serait il pas du à la déclaration dans CDrawingView de :
afx_msg void OnPaint(); dans la définition de la classe (DrawingView.h) ?
Dans la FAQ, j’ai vu qu’il était possible d’obtenir un pointeur vers un contrôle (IDC_). Mais avec ce pointeur comment obtenir le handle de ce fameux contrôle ?
Encore merci.
Hervé
Partager