DirectX/Altre funzioni Win32: differenze tra le versioni

Nessun cambiamento nella dimensione ,  5 anni fa
m
Bot: apostrofo dopo l'articolo indeterminativo
m (fix chiave cat)
m (Bot: apostrofo dopo l'articolo indeterminativo)
*Infine ''LoadImage'', preferito su ''LoadIcon''. Come parametri prende, il solito ''hInstance'', il percorso completo dell'icona (UTF-16), il tipo di immagine (IMAGE_ICON, IMAGE_BITMAP, IMAGE_CURSOR), le dimensioni desiderate (width, height), e delle flag.
 
Quando viene caricata un 'immagine di tipo IMAGE_ICON o IMAGE_CURSOR, si lasciano entrambe le dimensioni a zero e tra le flags si trova anche LR_DEFAULTSIZE, Windows caricherà quella determinata immagine con le dimensioni adatte ad una Icona od un Cursore.
 
== Cambiare cursore ==
Il processo per cambiare il cursore è analogo a quello per cambiare l'icona. Si carica un 'immagine con ''LoadImage'' di tipo IMAGE_CURSOR, e usando ''SetClassLongPtr'' la si imposta alla finestra:
<source lang="cpp">
HCURSOR Cursor = (HCURSOR) LoadImage(hInstance, L"C:\\Percorso\\Del\\Cursore.cur", IMAGE_CURSOR, 0, 0, LR_LOADFROMFILE | LR_DEFAULTSIZE);
 
== Spostare e ridimensionare la finestra ==
Per entrambi gli scopi esiste un 'unica funzione: ''SetWindowPos''. Questa funzione consente di spostare, ridimensionare, mostrare e nascondere una finestra con un solo comando. La sintassi è:
<source lang="cpp">
SetWindowPos(HWND hWnd, HWND hInsertAfter, int X, int Y, int cx, int cy, UINT flags);
*X, Y: sono le nuove coordinate della finestra nello schermo.
*cx, cy: sono le nuove dimensioni della finestra.
*hInsertAfter serve per controllare l'ordine delle finestre. Impostandolo ad HWND_TOP, la finestra apparirà in primo piano, con HWND_BOTTOM, la finestra sarà nascosta da tutte le altre. Specificando un HANDLE di un 'altra finestra, la nostra sarà appena sopra quella specificata.
*flags: con questo parametro possiamo escludere, il movimento, o il ridimensionamento, insomma possiamo scegliere quale delle tre funzioni usare, o farle usare tutte. Per esempio con SWP_NOMOVE, X ed Y sono ignorati. Con SWP_NOSIZE vengono ignorati cx e cy, mentre con SWP_NOZORDER, viene mantenuta la posizione relativa alle altre finestre, ignorando hInsertAfter. Un ulteriore flage SWP_NOACTIVATE. Normalmente SetWindowPos invia un messaggio di tipo WM_ACTIVATE alla finestra. Usando questa flag evitiamo questo effetto indesiderato.
 
3 150

contributi