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

Le
Khaoula Bouazizi
Bonjour,
Je souhaite dvelopper 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 russi 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'implmentation
//

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

#ifdef _DEBUG
#define new DEBUG_NEW
#endif


// bote de dialogue CAboutDlg utilise pour la bote de dialogue '=

propos de' pour votre application

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

// Donnes de bote de dialogue
enum { IDD = IDD_ABOUTBOX };

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

// Implmentation
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()


// bote 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'lment de menu " propos de" au menu Systme.

// IDM_ABOUTBOX doit se trouver dans la plage des commandes systme.
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);
}
}

// Dfinir l'icne de cette bote de dialogue. L'infrastructure
effectue cela automatiquement
// lorsque la fentre principale de l'application n'est pas une
bote de dialogue
SetIcon(m_hIcon, TRUE); // Dfinir une grande icne
SetIcon(m_hIcon, FALSE); // Dfinir une petite icne

// TODO : ajoutez ici une initialisation supplmentaire

return TRUE; // retourne TRUE, sauf si vous avez dfini le focus sur
un contrle
}

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 Rduire votre bote de dialogue, vous
devez utiliser le code ci-dessous
// pour dessiner l'icne. Pour les applications MFC utilisant le
modle Document/Vue,
// cela est fait automatiquement par l'infrastructure.

void CInterfaceDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // contexte de priphrique pour la peinture

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

// Centrer l'icne 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'icne
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}

// Le systme appelle cette fonction pour obtenir le curseur
afficher lorsque l'utilisateur fait glisser
// la fentre rduite.
HCURSOR CInterfaceDlg::OnQueryDragIcon()
{
return static_cast<HCURSOR>(m_hIcon);
}




void CInterfaceDlg::OnBnClickedParcourir()
{
// TODO : ajoutez ici le code de votre gestionnaire de notification
de contrle
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.
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