Bonjour,
Dans un programme C++, je tente désespérément d'afficher dans un "EDIT" successivement plusieurs lignes séparées par des sauts de lignes. Or, le texte est bien affiché mais pas les sauts de ligne. J'utilise VS2013Community et dans les propriétés j'ai bien vérifié que le "charactere set" est Unicode.
Je place les bouts de code qui me semble importants pour ceux qui tenteraient de m'aider.
D'abord la création de l'EDIT depuis la WndProc de mon programme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
	case WM_CREATE:
		edit = CreateWindow((LPCWSTR)(L"EDIT"), NULL, WS_BORDER | NULL | WS_CHILD | WS_VISIBLE | NULL | NULL, 35,150, 600, 200, hWnd, 0, hInst, 0);
la fonction d'ajout du texte trouvé dans ce site ( mais je ne retrouve pas le lien )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
void AppendText(HWND hEditWnd, LPCTSTR Text)
{
	int idx = GetWindowTextLength(hEditWnd);
	SendMessage(hEditWnd, EM_SETSEL, (WPARAM)idx, (LPARAM)idx);
	SendMessage(hEditWnd, EM_REPLACESEL, 0, (LPARAM)Text);
}
Et enfin l'ajout d'une ligne ( une seul suffit pour comprendre mon soucis ):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
	int const iSizeBuf = 100;
	TCHAR buf[iSizeBuf];
	//wsprintf(buf, TEXT("\r\nhShellTray : 0x%x \r\n"), hShellTray);
	HRESULT hr = StringCbPrintf(buf, iSizeBuf, TEXT("\r\nhShellTray : 0x%x \r\n"), hShellTray);
	AppendText(edit, buf);
L'absence d'affichage a lieu aussi avec le wsprintf.
C'est un peu comme si le "EDIT" était monoligne. Mais je pense que les EDIT sont obligatoirement Multilignes.
Merci pour votre aide.