mmm, ho provato il tuo ma senza esiti positivi, buona notizia, ho avuto un vero "colpo di cu*o", come si dice da noi:
quasi per caso ho scritto questo codice, funziona, ma non riesco a capire perchè!!!!!
In teoria quando stampo su ScreenDC e poi uso la BitBlt non dovrebbe cambiare nietne, e invece! Roba da non credere!
codice:
case WM_CHAR:
switch(wParam)
{
case '\b': //backspace
if(szText.size() <= 0)
return 0;
szText.assign(CSTR(szText),szText.size() - 1);
ScreenDC = GetDC(hwnd);
hdc = GetDC(hwnd);
DrawText(ScreenDC,CSTR(szText),szText.size(),&rcText,DT_LEFT);
BitBlt(hdc,0,0,xClient,yClient,ScreenDC,0,0,SRCCOPY);
ReleaseDC(hwnd,ScreenDC);
ReleaseDC(hwnd,hdc);
InvalidateRect(hwnd,NULL,TRUE);
UpdateWindow(hwnd);
return 0;
}
szText += (TCHAR)wParam;
InvalidateRect(hwnd,NULL,FALSE);
break;