Jeg har lavet en edit med CreateWindowEx og vil gerne have en funktion til at addere tekst (via en char* P) udover den tekst som allerede findes. Jeg kan ikke finde en macro eller API som gør dette for mig.
Det lader sig principielt gøre på en hjernedød måde: 1. Find længde af eksisterende text vha WM_gettext. 2. Find længde af ny tekst vha strlen(P). 3. Malloc en ny Buffer med størrelse svarende til gammel plus ny text og kør begge dele over i den. 4. Brug WM_settext på Edit med en pointer til Buffer som argument 5. free Buffer og færdig
Meeeeeen: Det kunne jo være jeg har overset en eller anden quick og beskidt måde. Nogen der ved noget??
Sproget er C, ikke C++. Mange tak for svaret. Yates
dette er speget. Man kan åbenbart bruge message EM_REPLACESEL, hvis man forudgående sørger for at der ikke er nogen selection. Dette sikres med EM_SETSEL.
Men ingen løsninger uden nedture - hvis jeg vil addere 2 linjer som fx "Skinke\nMedister\n", så accepteres ikke \n som newline karakter (der kommer bare et forkert tegn). Det hjælper heller ikke at bruge \r. Mao, min Edit fatter ikke escape seqs. Hvis jeg først adderer tekst, og så derefter selve ascii(13) og/eller ascii(10) så er resultatet nøjagtigt det samme. Træls.
Suma summarum: Nu ved jeg hvordan jeg kan addere tekst, men ikke hvis denne tekst er lavet af linjer.
Hvis nogen kan komme med gode ideer så sig endelig til.
Flg. kan evt. bruges som inspiration:
1000 tak. Y.
int Edit_AddText(HWND hEdit, char* txt) { //deselect everything foist
char* Newline = "\r"; //eller "\n" eller "\n\r" etc - samme resultat Edit_AddText(hEdit, txt); Edit_AddText(hEdit, Newline); }
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.