L
hey schrieb:
vllt. solltest du den text-buffer befüllen bzw. überhaupt erstmal speicher allokieren. vielleicht ist deine RECT-struktur auch falsch befüllt?
LRESULT CALLBACK infoProc( HWND myWnd, UINT msg, WPARAM wParam, LPARAM lParam )
{
bool retValue = false;
HDC myHdc;
PAINTSTRUCT myPaint;
static char *text;
RECT rect = {0};
switch( msg )
{
case WM_SIZE:
{
rect.left = 0;
rect.top = 0;
rect.right = LOWORD(lParam);
rect.bottom = HIWORD(lParam);
}
case WM_PAINT:
myHdc = BeginPaint( myWnd, &myPaint );
{
printf( "%s\n", text );
DrawText( myHdc, text, lstrlen( text ), &rect, DT_CENTER | DT_SINGLELINE );
}
EndPaint( myWnd, &myPaint );
retValue = true;
break;
case PM_SETINFOTEXT:
printf( "." );
text = (char*)lParam;
printf( "." );
InvalidateRect( myWnd, NULL, TRUE );
retValue = true;
break;
case WM_LBUTTONUP:
ShowWindow( myWnd, SW_HIDE );
retValue = true;
break;
}
if(!retValue)
return DefWindowProc( myWnd, msg, wParam, lParam );
return retValue;
}
Bevor ich WM_PAINT aufrufe, wird PM_SETINFOTEXT gesendet, also ist der Buffer befüllt, was ich natürlich auch schon aus kraft gesetzt habe indem ich anmerkte, dass wenn ich
printf( "%s", text);
mache er den Text anzeigt, also muss alles richtig sein.
ich bin mit diesem Tutorial zur Hilfe an die Sache ran gegangen, allerdings schreiben die auch nur Singleline, und mit Singleline hätt ich ja auch gleich TextOut machen können.
hey schrieb:
lippoliv schrieb:
Das ist ja bei nem Return dabei (return DefWindowProc...).
nein. du solltest dich schon an die return-Werte halten, die dir in der MSDN vorgegeben werden.
meintest du
hey schrieb:
lippoliv schrieb:
Das ist ja bei nem Return dabei (return DefWindowProc...).
nein. du solltest dich schon an die return-Werte halten, die dir in der MSDN vorgegeben werden.
Ist auch egal, ich verstehe deine aussage nciht:
Hier siehst du auch dass entweder
return 0;
oder
return DefWindowProc(...);
benutzt wird, also wieso sollte ich mich nicht daran halten? Diese Tutorials wurden mir empfohlen...
DANKE
hey schrieb:
vielleicht ist deine RECT-struktur auch falsch befüllt?
RECT rect = {0};
-->>
static RECT rect = {0};
So klappts auch, jetzt muss ich nur noch skallieren.
Dickes danke an alle.