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 :
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 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);
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
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); }
L'absence d'affichage a lieu aussi avec le wsprintf.
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);
C'est un peu comme si le "EDIT" était monoligne. Mais je pense que les EDIT sont obligatoirement Multilignes.
Merci pour votre aide.
Partager