Lecture fichier.txt dans une Ihm

Bonjour !!
J’aimerais savoir s’il est possible de lire un fichier texte dans une Ihm soit par une EditBox ou une StaticBox.
Mon projet se compose de dialog Base ( je suis sous visual c++ 6).
Et aussi si il est possible de sélectionner un fichier qui se trouve sur une liste dans une l’ihm et de l’ouvrir pour le lire.
Si tous cela est possible pouvez vous m’indiquer la mêthode ou un site d’Ihm pour les nuls lol, je vous remercie de votre aide !!

Oui, il est possible de lire un fichier dans uns ihm, tu as les api CreateFile[/url], [url=http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base/readfile.asp]ReadFile pour cela.
Une fois les données lues, tu as l’api SetWindowText.
Tu peux aussi ouvrir un fichier qui se trouve dans une liste déroulante, il suffit de récupérer le chemin de l’index de ta liste via le message CB_GETCURSEL.

Aurais tu un exemple plus concret avec SetWindowsText s’il te plait et jai vue aussi Cfile pour lire le fichier mais jai pas piger comment il fonctionnait donc si tu peux me m’aider je t’en remerci. Et merci pour tes conseil !!

[cpp]
#include <windows.h>
#include “resource.h”

// Source assez explicite pour éviter des commentaires redondants :wink:

BOOL LoadFile(HWND hEdit, LPSTR pszFileName)
{
HANDLE hFile;
BOOL bSuccess = FALSE;

hFile = CreateFile(pszFileName, GENERIC_READ, FILE_SHARE_READ, NULL,
OPEN_EXISTING, 0, 0);
if(hFile != INVALID_HANDLE_VALUE)
{
DWORD dwFileSize;
dwFileSize = GetFileSize(hFile, NULL);
if(dwFileSize != 0xFFFFFFFF)
{
LPSTR pszFileText;
pszFileText = (LPSTR)GlobalAlloc(GPTR, dwFileSize + 1);
if(pszFileText != NULL)
{
DWORD dwRead;
if(ReadFile(hFile, pszFileText, dwFileSize, &dwRead, NULL))
{
pszFileText[dwFileSize] = 0;
if(SetWindowText(hEdit, pszFileText))
bSuccess = TRUE;
}
GlobalFree(pszFileText);
}
}
CloseHandle(hFile);
}
return bSuccess;
}

BOOL CALLBACK MainWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{

PAINTSTRUCT ps; 

	switch (msg)
	{

		case WM_INITDIALOG:
		{
		HFONT myfont= NULL;
		LOGFONT lFont;

		SetFocus(hwnd);
		
		// tu peux choisir la font via GetStockObject
		if (GetObject(GetStockObject(ANSI_FIXED_FONT), sizeof(LOGFONT), (LPSTR)&amp;lFont))
         {
				myfont = CreateFont(11,6,0,0,100,0,0,0,OEM_CHARSET,OUT_DEFAULT_PRECIS,1,1,1, "terminal");
				SendMessage(GetDlgItem(hwnd, IDC_EDITBOX), WM_SETFONT, (WPARAM)myfont, 0L);

		}

			return TRUE;
		}
	
		
		case WM_COMMAND:
		{
			switch(LOWORD(wParam))
			{
				
				// Open File
				case IDC_OPENFILE:
				{
					OPENFILENAME  ofn;
					char szFile[4096];
					char szFileTitle[4096];
					char dirname[256];

					szFile[0] = '\0'; 

					GetCurrentDirectory(sizeof(dirname), dirname);
					memset(&amp;ofn, 0, sizeof(ofn));
					ofn.lStructSize = sizeof(OPENFILENAME); 
					ofn.hwndOwner = hwnd; 
					ofn.lpstrTitle = "Open text File\0";
					ofn.lpstrFilter = "Open text File (*.txt)\0*.txt\0\0";
					ofn.lpstrCustomFilter = NULL;
					ofn.nFilterIndex = 1; 
					ofn.lpstrFile = szFile; 
					ofn.nMaxFile = 2048; 
					ofn.lpstrFileTitle = szFileTitle;
					ofn.nMaxFileTitle = 2048;
					ofn.lpstrInitialDir = dirname;
					ofn.Flags = OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_ALLOWMULTISELECT; 


					if  (GetOpenFileName(&amp;ofn) )
					{
						if (!LoadFile(GetDlgItem(hwnd, IDC_EDITBOX), ofn.lpstrFile))
							MessageBox( NULL, "Can't open the file !", "I/O Error !" , MB_ICONHAND|MB_OK|MB_SYSTEMMODAL);

					} else
						MessageBox( NULL, "Error loading", "Error", MB_ICONHAND|MB_OK|MB_SYSTEMMODAL);

					break;
				}	
				
				case IDC_QUIT:
				{
					EndDialog(hwnd, 0);
					PostQuitMessage(0);
					return TRUE;
				}
			}
			
			break;
		}
		

		case WM_CLOSE:
		{
	
			EndDialog(hwnd,0);
			PostQuitMessage(0);
			return TRUE;
		}		

		case WM_PAINT:
		{

			HDC			m_DC = NULL;	
			HBRUSH		m_Brush;
			RECT		rect;

			// EDITBOX : tu peux modifier les couleurs de l'editbox comme ceci
			m_Brush = CreateSolidBrush(RGB(0,0,0));
			m_DC = BeginPaint(hwnd, &amp;ps); 
			SetRect(&amp;rect, 0,0, 516, 700);
			FillRect(m_DC, &amp;rect, (HBRUSH) m_Brush);
			DeleteObject(m_Brush);
			EndPaint (hwnd, &amp;ps);

			return 0;
		}

		default:
		{
			return FALSE;
		}
	}

return FALSE;

}

int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
MSG msg;
HWND mainHwnd;

mainHwnd = CreateDialog(hInstance, MAKEINTRESOURCE(IDD_DIALOGBAR), GetDesktopWindow(), MainWndProc);
ShowWindow(mainHwnd, SW_SHOW);
UpdateWindow(mainHwnd); 

while (GetMessage( &amp;msg, 0, 0, 0 ))
{
	TranslateMessage( &amp;msg );
  	DispatchMessage( &amp;msg );
}
return (int)msg.wParam;

}
[/cpp]

Je te laisse le soin de regarder de ton côté pour la liste déroulante, j’ai remarqué que tu attents toujours que l’on te fasse le code à la place.
J’ai été gentil cette fois ci mais la prochaine fois, montre nous ce que tu as fait avant de demander de l’aide :wink:

PS : les CFile c’est pour les mfc, tu n’as pas spécifié si tu les utilisais, j’ai donc utilisé les win32 api

Merci beaucoup de ton aide sinon les IHM je débute et j’en ai besoin pour un projet en cour et donc je veux pas que ca me prenne un temps fou car j’ai plein d’autre a faire merci encore pour ton aide