View Single Post
Old 15-10-2006, 19:35   #2
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da Abdujaparov
Problema 1:
Nella procedura che gestisce la mia finestra popup ho inserito questo case:
case WM_LBUTTONDBLCLK:
MessageBox(NULL, (LPTSTR)"EVVAI", (LPTSTR)"Doppioclick",1);
break;

Ma non fa nulla.
Come posso risolvere?
Leggi: WM_LBUTTONDBLCLK Notification

In questo caso MSDN è molto chiara:
Only windows that have the CS_DBLCLKS style can receive WM_LBUTTONDBLCLK messages [...]

Quote:
Originariamente inviato da Abdujaparov
Problema 2:
Ad esempio, ho questo testo:
"ciao ciao
pippo"
cioè "ciao ciao\npippo"
e voglio visualizzarlo in un popup.
Per scriverlo in un popup utilizzo queste funzioni:

case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);

GetClientRect(hWnd,&rect);
MessageBox(NULL, (LPTSTR)MESSAGGIO_PRECEDENTE, LPTSTR)"Messaggio precedente",1);
DrawText(hdc,MESSAGGIO_PRECEDENTE,-1,&rect,DT_SINGLELINE);

EndPaint(hWnd, &ps);
break;

Dentro la procedura per la gestione dei messaggi del popup.
La MessageBox me lo visualizza correttamente il DrawText, che uso per scrivere nel popup, mi scrive una cosa simile:
ciao ciao||pippo.
Perchè?
Beh .... hai messo DT_SINGLELINE! Prova a toglierlo! E metti \r\n, non solo \n (non ne sono sicuro al 100% ma credo che si debbano mettere entrambi).

DT_SINGLELINE Displays text on a single line only. Carriage returns and line feeds do not break the line.


P.S.: non mettere mai una MessageBox in risposta a WM_PAINT. Non oso immaginare cosa potrebbe succedere.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso