[C++] Afficher le contenu d'un fichier dans un listBox

Le
Khaoula Bouazizi
Bonjour,
Je souhaite développer une interface graphique qui permet de parcourir
des fichiers et de les afficher, voici ma maquette initiale :
http://cjoint.com/data/knpF4Wsi5C_MFC.JPG
J'ai réussi à parcourir les fichiers sauf que je ne sais pas comment
afficher le contenu du fichier dans le listBox "Values".
Voici mon code :
// InterfaceDlg.cpp : fichier d'implémentation
//

#include "stdafx.h"
#include "Interface.h"
#include "InterfaceDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif


// boîte de dialogue CAboutDlg utilisée pour la boîte de dialogue '=
À
propos de' pour votre application

class CAboutDlg : public CDialog
{
public:
CAboutDlg();

// Données de boîte de dialogue
enum { IDD = IDD_ABOUTBOX };

protected:
//responsable de tout échange entre un contrôle et une variable
virtual void DoDataExchange(CDataExchange* pDX); // Prise en
charge de DDX/DDV

// Implémentation
protected:
DECLARE_MESSAGE_MAP()
};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
//Je vais lier l'édit à la variable m_csInputFile, chaque changement
de m_csInputFile
//va être affiché dans la zone de texte
DDX_Text(pDX, IDC_INPUTFILE, m_csInputFile);
CDialog::DoDataExchange(pDX);
}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
END_MESSAGE_MAP()


// boîte de dialogue CInterfaceDlg




CInterfaceDlg::CInterfaceDlg(CWnd* pParent /*=NULL*/)
: CDialog(CInterfaceDlg::IDD, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CInterfaceDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}

BEGIN_MESSAGE_MAP(CInterfaceDlg, CDialog)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
//}}AFX_MSG_MAP
ON_BN_CLICKED(IDC_PARCOURIR, &CInterfaceDlg::OnBnClickedParcourir)
END_MESSAGE_MAP()


// gestionnaires de messages pour CInterfaceDlg

BOOL CInterfaceDlg::OnInitDialog()
{
CDialog::OnInitDialog();

// Ajouter l'élément de menu "À propos de" au menu Système.

// IDM_ABOUTBOX doit se trouver dans la plage des commandes système.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);

CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}

// Définir l'icône de cette boîte de dialogue. L'infrastructure
effectue cela automatiquement
// lorsque la fenêtre principale de l'application n'est pas une
boîte de dialogue
SetIcon(m_hIcon, TRUE); // Définir une grande icône
SetIcon(m_hIcon, FALSE); // Définir une petite icône

// TODO : ajoutez ici une initialisation supplémentaire

return TRUE; // retourne TRUE, sauf si vous avez défini le focus sur
un contrôle
}

void CInterfaceDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else
{
CDialog::OnSysCommand(nID, lParam);
}
}

// Si vous ajoutez un bouton Réduire à votre boîte de dialogue, vous
devez utiliser le code ci-dessous
// pour dessiner l'icône. Pour les applications MFC utilisant le
modèle Document/Vue,
// cela est fait automatiquement par l'infrastructure.

void CInterfaceDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // contexte de périphérique pour la peinture

SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc
()), 0);

// Centrer l'icône dans le rectangle client
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;

// Dessiner l'icône
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}

// Le système appelle cette fonction pour obtenir le curseur à
afficher lorsque l'utilisateur fait glisser
// la fenêtre réduite.
HCURSOR CInterfaceDlg::OnQueryDragIcon()
{
return static_cast<HCURSOR>(m_hIcon);
}




void CInterfaceDlg::OnBnClickedParcourir()
{
// TODO : ajoutez ici le code de votre gestionnaire de notification
de contrôle
CString OpenFilter;
OpenFilter = "Text File (*.txt)|*.txt||";

CFileDialog FileOpenDialog(
TRUE,
NULL,
NULL,
OFN_FILEMUSTEXIST|OFN_HIDEREADONLY|OFN_PATHMUSTEXIST,
OpenFilter, // filter
AfxGetMainWnd()); // the parent window
if(FileOpenDialog.DoModal()==IDOK)
{
// ouverture de fichier
CFile File;
VERIFY(File.Open(FileOpenDialog.GetPathName
(),CFile::modeRead));
AfxMessageBox(L"ouverture OK");
}
}

Quelqu'un pourrait m'éclaircir les lanternes sivouplé ?
Merci par avance.
K.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Alain
Le #20346351
"Khaoula Bouazizi" news:
Bonjour,
Je souhaite développer une interface graphique qui permet de parcourir
des fichiers et de les afficher, voici ma maquette initiale :


http://cjoint.com/data/knpF4Wsi5C_MFC.JPG
J'ai réussi à parcourir les fichiers sauf que je ne sais pas comment
afficher le contenu du fichier dans le listBox "Values".



Tu lis le fichier ligne à ligne (fopen(), fgets(), ..) comme sur
http://irc.essex.ac.uk/www.iota-six.co.uk/c/i2_feof_fgets_fread.asp
et tu insères chaque ligne dans la listbox avec
CListBox::AddString si tu es en MFC : comme
http://msdn.microsoft.com/en-us/library/2cekde96(VS.80).aspx
(bien que ce soit bizarre d'utiliser une lisbox pour afficher un fichier, au
lieu d'un multi-line ou richedit..)
Publicité
Poster une réponse
Anonyme