D
Moin kpeter,
bin wieder kurz im Büro.
Habe ein neues Prog mit nur einem RichEdit erstellt und Deinen Code vom 7.6.2010 genommen, und ES FUNKTIONIERT
Werde demnächst meine eigentliche Anwendung untersuchen, wo ich meinen RichEdit so verbogen habe, das es nicht funktioniert.
Hier für alle der Code:
WNDPROC OldRichEditProc;
bool SetCaret(HWND hWnd)
{
HideCaret(hWnd);
CreateCaret(hWnd, (HBITMAP) NULL, 7, 17);
return ShowCaret(hWnd);
}
LRESULT CALLBACK NewRichEditProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
{
switch( uMsg ) {
case WM_NCHITTEST : SetCaret(hWnd); break; // Reaktion auf Maus
case WM_KEYUP : SetCaret(hWnd); break; // Reaktion auf Taste
}
return ::CallWindowProc((FARPROC)OldRichEditProc, hWnd, uMsg, wParam, lParam );
}
//---------------------------------------------------------------------------
// im Konstruktor
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
OldRichEditProc = (WNDPROC)GetWindowLong( RichEdit1->Handle, GWL_WNDPROC );
SetWindowLong( RichEdit1->Handle, GWL_WNDPROC, (LONG)NewRichEditProc );
}
Danke an kpeter