Bonjour,
j'affiche dans une ListBox des valeurs, ces valeurs je veux les mettre sous forme d'une courbe y = f(x) . d'1 clic sur la listbox je veux alterner soit les valeurs soit la courbe.
Est-ce que quelqu'un a 1 id�e ?
Version imprimable
Bonjour,
j'affiche dans une ListBox des valeurs, ces valeurs je veux les mettre sous forme d'une courbe y = f(x) . d'1 clic sur la listbox je veux alterner soit les valeurs soit la courbe.
Est-ce que quelqu'un a 1 id�e ?
salut,
le mieux est de faire un contr�le bouton owner draw de la m�me dimension que ta listbox.
au debut il est invisible (ShowWindow(SW_HIDE)) et inactif (EnableWindow(FALSE)).
quand tu clic sur la lisbox tu le passe actif et visible.
dans la classe d�riv� du bouton quand tu clics dessus tu mets le bouton inactif et invisible.
pour la technique de dessin dans un contr�le voir cet exemple :
http://farscape.developpez.com/Samples/TestGraph.zip
Bon j'ai regard� ton exemple, seulement voila je n'arrive pas � relier mon bouton CButton � la classe CGraphique que tu a defini dans graphique.cpp et graphique.h
En effet dans l'editeur de ressource quand je veux ajouter une variable membre � ce control je n'ai que la possibilit� de la relier qu'a CButton.
Or dans graphique.cpp il y a la fonction
DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
Je ne peux pas y acceder alors j'ai cr�� par programme un CGraphique
mais voila comment t'initailise lpDrawItemStruct
Voila ce que j'ai ecris.
CButton *courbe = (CButton *) GetDlgItem(IDC_BUTTON_COURBE);
LPDRAWITEMSTRUCT lpDrawItemStruct;
courbe->DrawItem(lpDrawItemStruct);
tu laisses faire l'ide sur la classe CButton et tu changes manuellement le nom de la classe dans le .h de ta fen�tre...
c'est ce que j'ai fait et qd je compile il me marque :
Compiling...
CineTrans.cpp
c:\work_bp\applis windows\cinetrans\cinetransdlg.h(50) : error C2146: syntax error : missing ';' before identifier 'm_courbe'
c:\work_bp\applis windows\cinetrans\cinetransdlg.h(50) : error C2501: 'CGraphique' : missing storage-class or type specifiers
c:\work_bp\applis windows\cinetrans\cinetransdlg.h(50) : error C2501: 'm_courbe' : missing storage-class or type specifiers
CineTransDlg.cpp
Voici une parti du source du .h
// Dialog Data
//{{AFX_DATA(CCineTransDlg)
enum { IDD = IDD_CINETRANS_DIALOG };
CGraphique m_courbe;
CButton m_Ctrl_Menu_Prog;
CStatic m_Ctrl_Static_Erase;
CStatic m_Ctrl_Static_Prog;
CStatic m_Ctrl_Static_Ver;
CButton m_Ctrl_Program;
CButton m_Ctrl_Verify;
CButton m_Ctrl_Erase;
CListBox m_Ctrl_Memoire_File;
CString m_Str_Static_Ver;
CString m_Str_Static_Prog;
CString m_Str_Static_Erase;
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CCineTransDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
J'ai remplac� CButton de m_courbe par CGraphique et voila les erreurs
ben tu as oubli� de mettre l'include de CGraphique dans ton source (.cpp) au dessus de celui de la fen�tre ....
Je n'comprend pas je vient de le faire et �a me met tjrs l'erreur.
Dans mon fichier CineTransDlg.cpp
#include "stdafx.h"
#include "Graphique.h"
#include "CineTrans.h"
#include "CineTransDlg.h"
#include "Program.h"
....
t'as une idee de ce que c'est ?
a mon avis ce n'est pas le m�me source ...
tu dois avoir cet include dans tous les sources qui incluent la fen�tre contenant le contr�le .
comme CineTrans.cpp et CineTransDlg.cpp ....
Je ne comprend plus je ne peux plus revenir en arri�re comme si �a m'avait bousill� mon programme voila ce qui me met comme erreur.
Il en reconnait plus ma fen�tre
Compiling...
CineTransDlg.cpp
graphique.cpp
c:\work_bp\applis windows\cinetrans\cinetransdlg.h(50) : error C2065: 'IDD_CINETRANS_DIALOG' : undeclared identifier
c:\work_bp\applis windows\cinetrans\cinetransdlg.h(50) : error C2057: expected constant expression
Generating Code...
Compiling...
CineTrans.cpp
C:\work_bp\Applis Windows\CineTrans\CineTransDlg.cpp(1128) : warning C4700: local variable 'lpDrawItemStruct' used without having been initialized
Generating Code...
Skipping... (no relevant changes detected)
Contact.cpp
Program.cpp
RVB.cpp
Error executing cl.exe.
CineTrans.exe - 2 error(s), 1 warning(s)
source :
// Dialog Data
//{{AFX_DATA(CCineTransDlg)
enum { IDD = IDD_CINETRANS_DIALOG };
CButton m_courbe;
CButton m_Ctrl_Menu_Prog;
CStatic m_Ctrl_Static_Erase;
CStatic m_Ctrl_Static_Prog;
CStatic m_Ctrl_Static_Ver;
CButton m_Ctrl_Program;
CButton m_Ctrl_Verify;
CButton m_Ctrl_Erase;
CListBox m_Ctrl_Memoire_File;
CString m_Str_Static_Ver;
CString m_Str_Static_Prog;
CString m_Str_Static_Erase;
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CCineTransDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
montre moi l'ordre de tes includes dans CineTransDlg.cpp
#include "stdafx.h"
//#include "Graphique.h"
#include "resource.h"
#include "CineTrans.h"
#include "CineTransDlg.h"
#include "Program.h"
#include "general.h"
#include "Memoire_File.h"
#include "Hex2Bin.h"
#include "resource.h"
#include "LoadProgress.h"
#include "CTpCtrl.h"
#include "Contact.h"
//#include "MDIColorView.h"
//#include "MDIColorViewDoc.h"
//#include "MDIColorViewView.h"
#include "HtmlHelp.h"
#include "Mire.h"
#include "bin2hex.h"
#include "RVB.h"
#include "gamma.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#include <string.h>
#include <Afxwin.h>
#include <wingdi.h>
#include <afx.h>
#include <ctype.h>
#include <stdlib.h>
#include <stdafx.h>
#include <richedit.h>
#include <winuser.h>
#include <process.h>
#include <stdio.h>
#include <winbase.h>
#include <windowsx.h>
#include <MAPIDEFS.H>
#include <afxdlgs.h>
#include <io.h>
#include <memory.h>
#include <malloc.h>
j'te donne le source de mon fichier .h
// CineTransDlg.h : header file
//
#if !defined(AFX_CINETRANSDLG_H__F4D18E0E_234B_4396_9250_6A1EED140AC3__INCLUDED_)
#define AFX_CINETRANSDLG_H__F4D18E0E_234B_4396_9250_6A1EED140AC3__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
/////////////////////////////////////////////////////////////////////////////
// CCineTransDlg dialog
class CCineTransDlg : public CDialog
{
// Construction
public:
CCineTransDlg(CWnd* pParent = NULL); // standard constructor
CDialog *Display_Load_Progress();
void MenuItem(int nPos, UINT nID, UINT nEnable);
void Lec_Fichier_Bin(CString, CDialog *, unsigned int);
void Lec_Fichier_Lut(CString, CDialog *, unsigned int);
void Lec_Fichier_Gam(CString, CDialog *, unsigned int);
int GetnPos(UINT);
void Mix_Hex_Lut(CString Chemin_Hex, CString Chemin_Lut);
void Mix_Hex_Gamma(CString Chemin_Hex, CString Chemin_Lut);
CString m_strSelectedPath;
CString m_strFileName;
TCHAR CurrentDirCinetrans[MAX_PATH];
CFont font;
char *MemoryFileNameLoad;
// Dialog Data
//{{AFX_DATA(CCineTransDlg)
enum { IDD = IDD_CINETRANS_DIALOG };
CButton m_courbe;
CButton m_Ctrl_Menu_Prog;
CStatic m_Ctrl_Static_Erase;
CStatic m_Ctrl_Static_Prog;
CStatic m_Ctrl_Static_Ver;
CButton m_Ctrl_Program;
CButton m_Ctrl_Verify;
CButton m_Ctrl_Erase;
CListBox m_Ctrl_Memoire_File;
CString m_Str_Static_Ver;
CString m_Str_Static_Prog;
CString m_Str_Static_Erase;
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CCineTransDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
HICON m_hIcon;
// Generated message map functions
//{{AFX_MSG(CCineTransDlg)
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
virtual void OnOK();
afx_msg void OnProgram();
afx_msg void OnErase();
afx_msg void OnProgramme();
afx_msg void OnVerify();
virtual void OnCancel();
afx_msg void OnStaticEpv(LPCTSTR str);
afx_msg void OnDeviceRead();
afx_msg void OnHelpAboutcintrans();
afx_msg void OnHelpContact();
afx_msg void OnSaveBufferAs();
afx_msg void OnHelpContent();
afx_msg BOOL OnHelpInfo(HELPINFO* pHelpInfo);
afx_msg void OnButtonLut();
afx_msg void OnFileNewlutfile();
afx_msg void OnFileOpenlutfile();
afx_msg void OnDblclkMemoireFile();
afx_msg void OnFileSavebufferasHexfile();
afx_msg void OnFileSavebufferasLutfile();
afx_msg void OnButtonGamma();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_CINETRANSDLG_H__F4D18E0E_234B_4396_9250_6A1EED140AC3__INCLUDED_)
pour que �a marche il faut que je rajoute dans CineTransDlg.h
#include "resource.h"
c'est pas normal , �a march� avant, comment cela se fait ?
cherche pas plus longtemps j'ai r�solu mon pb. cependant je n'ai tjrs pas resolu mon 1er pb c'est � dire remplacer CButton par CGraphique qui n'est pas reconnu
Pour que �a compile sans erreur , j'ai du mettre l'include "Graphique.h" dans CineTransDlg.h
c'est pas normal, comment t'expliques �a ?
et en plus �a marche bien en execution c'est super je ne comprend pas mais c'est super, normalement le fait de mettre #include "graphique.h" devant
#include "CineTransDlg.h" dans "CineTransDlg.cpp" �a aurait du marcher !
si c'est normal, c'est aussi une possibilit�,Citation:
Envoy� par Minos2
mais bon vu le bazarre de ton .h �a ne m'etonne pas trop que tu ais des probl�mes .
j'ai compt� deux fois resource.h ,alors que celui-ci est d�j� inclu dans le .h de l'application ...
il y a des includes qui sont d�j� compris dans stdafx.h afxwin.h et compagnie.