hoe kan ik de focus in een window op de bottom krijgen?

Status
Niet open voor verdere reacties.

fsasfsas

Gebruiker
Lid geworden
11 sep 2006
Berichten
429
Beste allemaal

Ik ben een oud programma aan het herschrijven maar loop tegen nogal wat problemen aan. Ik heb wel (oude) ervaring met C, maar niet met C++ en ook niet met windows (kun je nagaan hoe oud...)
Het is me inmiddels gelukt (met hulp) om een window aan te maken waarin alle prints vanuit het programma in terechtkomen.

Echter, als ik tijdens het runnen van het programma zelf in dat window omhoog scroll/ klik, dat komt de eerstvolgende print terecht op die plek, dus tussen eerder geprinte tekst in, en het moet juist onderaan terecht komen. Hoe kan ik dit voor elkaar krijgen?

Het window waar het om gaat is als volgt gemaakt: (in de winmain)
Code:
    g_hedit = CreateWindow("edit", "", WS_VISIBLE|WS_VSCROLL|WS_CHILD
                           |ES_MULTILINE|WS_BORDER,
                           0,0,Breedte-15,Hoogte-60,hwnd,(HMENU)IDC_EDIT,hInstance,0);
en ik kan vanuit het programma printen door de functie printfwin aan te roepen (bv printfwin ("dit is een boodschap\r\n"); )
Deze functie is als volgt:

Code:
void printfwin(LPCTSTR sz)
{
	SendMessage(g_hedit,EM_REPLACESEL,0,(LPARAM)sz);
	SendMessage(g_hedit,EM_SCROLL,(WPARAM)SB_PAGEDOWN,0);
}

Weet iemand wat ik waar aan moet passen om ervoor te zorgen dat geprintte spullen altijd onderaan terecht komen, ook als ik vlak van tevoren met de muis hoger in het window heb geklikt? Ik heb al veel geprobeerd maar omdat ik niet precies weet wat ik doe lukt het me maar niet...

alvast met dank!

groetjes, Anjo
 
Je kan het proberen door SendMessage(g_hedit,EM_SETSEL,-2,-2);
toe te voegen boven aan de printwin()[cpp]
void printwin(LPCTSTR sz)
{
SendMessage(g_hedit,EM_SETSEL,-2,-2);
SendMessage(g_hedit,EM_REPLACESEL,0,(LPARAM)sz);
SendMessage(g_hedit,EM_SCROLL,(WPARAM)SB_PAGEDOWN,0);
}[/cpp]
 
Je kan het proberen door SendMessage(g_hedit,EM_SETSEL,-2,-2);
toe te voegen boven aan de printwin()[cpp]
void printwin(LPCTSTR sz)
{
SendMessage(g_hedit,EM_SETSEL,-2,-2);
SendMessage(g_hedit,EM_REPLACESEL,0,(LPARAM)sz);
SendMessage(g_hedit,EM_SCROLL,(WPARAM)SB_PAGEDOWN,0);
}[/cpp]

Zojuist getest en zo te zien doet het inderdaad wat ik wil. Dank je wel!

groetjes, Anjo
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan