IRC-Klient mit c++/WinAPI: Scroll prob :(

Hi Leute!
Ich bin gerade dabei einen IRC-Klienten in c++/WinAPI zu schreiben und bin auf ein Problem mit dem automatischen Scrolling gestoßen. Esfunktioniert einfach nicht, egal was ich tue :(
Zum Code: Ich benutze einen Dialog als Chatfenster der auf eine Ressource Datei zugreift

Code:
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, 
                   LPSTR lpCmdLine, int nCmdShow)
{
	int erCode = DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAIN), NULL, DialogProc);
	GetErr0rFromDialog(erCode);
	return 0;
}

Hier eine Funktion die permanent läuft ( Thread ) in der ich jede Sekunde den Chat aktualisiere und bis ganz nach unten scrollen will:
Code:
void PostNews(void* hWnd)
{
	while(1)
	{
		SetDlgItemText((HWND)hWnd, IDC_EDT2, mainBuf);
		for(int i=0;i<500;i++)
			SendMessage((HWND)IDC_EDT2, EM_LINESCROLL, 0, 1);
		Sleep(1000);
	}
}

Hier noch die Ressource. Btw: eigendlich ist Autoscrollung schon per Ressource an aber es funktioniert auch nicht.
Code:
IDD_MAIN DIALOGEX 6,5,415,177
CAPTION ". . .//eq<3irc//. . ."
FONT 8,"MS Sans Serif"
MENU IDR_MENU
STYLE 0x10CF0000
EXSTYLE 0x00000000
BEGIN
  CONTROL "",IDC_EDT2,"Edit",0x50211844,0,0,332,161,0x00020000
  CONTROL "",IDC_EDT1,"Edit",0x50010000,0,164,416,11,0x00020000
  CONTROL "",IDC_LST1,"ListBox",0x50010141,334,0,81,161,0x00020000
END

Bin dankbar für jede Hilfe ;)

eqw0uL
 
Das Problem hatte ich damals so umgangen:
Code:
SendDlgItemMessage,hWin,IDC_OUTPUT,EM_SETSEL ,0FFFFFFFEh,0FFFFFFFEh 
SendDlgItemMessage,hWin,IDC_OUTPUT,EM_REPLACESEL,FALSE,textbuffer
 
Code:
void PostNews(void* hWnd)
{
	while(1)
	{
		SetDlgItemText((HWND)hWnd, IDC_EDT2, mainBuf);
		for(int i=0;i<500;i++)
			//SendMessage((HWND)IDC_EDT2, EM_LINESCROLL, 0, 1);
			SendDlgItemMessage(hWnd,IDC_EDT2,EM_SETSEL ,0FFFFFFFEh,0FFFFFFFEh);
			SendDlgItemMessage(hWnd,IDC_EDT2,EM_REPLACESEL,FALSE,mainBuf);
		Sleep(1000);
	}
}

ich kann das grad nich fixen :>

Code:
irc.cpp:295:69: invalid suffix "FFFFFFFEh" on integer constant
irc.cpp:295:80: invalid suffix "FFFFFFFEh" on integer constant
irc.cpp: In function `void PostNews(void*)':
irc.cpp:295: error: invalid conversion from `void*' to `HWND__*'
irc.cpp:296: error: invalid conversion from `void*' to `HWND__*'
irc.cpp:296: error: invalid conversion from `char*' to `long int'

ich komm mir grad ziemlich doof vor obwohl die msdn mein freund ist ^^

edit ^^ ja wenn dummheit wehtun würde glich es einem laster der über mich fährt, ok habs schon danke, danke, danke ^^
 
Du brauchst es nicht in die For-Schleife zu tun. Auch ist meine Angabe nicht in C-Syntax gehalten ;). Der Sinn ist, durch EM_SETSEL den Caret (k.A wie man es auf Deutsch korrekt nennt - Kursor?) ganz am Ende des Textes zu platzieren und dann die (Null) Markierung zu ersetzen - so wird automatisch nach unten gescrollt.


irc.cpp:295:69: invalid suffix "FFFFFFFEh" on integer constant
entweder 0xFFFFFFFE oder -2 schreiben
irc.cpp:296: error: invalid conversion from `void*' to `HWND__*'
braucht wohl denselben HWND-Cast wie in der Zeile 5.
 
Zurück
Oben