Domanda

Sto costruendo un controllo/widget Win32 personalizzato e vorrei trasformare il cursore in un simbolo di "divisione" orizzontale quando si passa con il mouse su una particolare linea verticale nel controllo.CIOÈ:Voglio trascinare questa linea verticale (barra di divisione) a sinistra e a destra (OVEST e EST).

Dei cursori di sistema (OCR_*), l'unico cursore che ha senso è OCR_SIZEWE.Sfortunatamente, questo è il cursore grande e scomodo che il sistema utilizza quando ridimensiona una finestra.Invece, cerco il cursore alto circa 20 pixel e largo circa 3 o 4 pixel con due piccole frecce che puntano a sinistra e a destra.

Posso facilmente disegnarlo e includerlo come risorsa nella mia applicazione, ma il cursore stesso è così prevalente che volevo essere sicuro che non mancasse qualcosa.

Per esempio:quando usi il meccanismo di trascinamento della selezione COM (CLSID_DragDropHelper, IDropTarget, ecc.) hai implicitamente accesso all'icona di "trascinamento" (piccola casella sotto il puntatore).Non ho visto una costante OCR_* esplicita per questo ragazzo...allo stesso modo, se non riesco a trovare questo cursore divisore, mi chiedo se fa parte di un oggetto COM o qualcos'altro nella libreria win32.

È stato utile?

Soluzione

Sono presenti tutti i tipi di icone, cursori e immagini in uso nell'interfaccia utente di Windows che non sono disponibili pubblicamente per software di terze parti.Naturalmente, potresti comunque caricare il modulo in cui risiedono e usarli, ma non c'è davvero alcuna garanzia che il tuo programma continui a funzionare dopo un aggiornamento/upgrade del sistema.

Includi il tuo.L'ultima cosa che vuoi è aggiungere una dipendenza extra su un piccolo cursore.

Altri suggerimenti

Ho avuto questo problema esatto.Quando ho riguardato un vecchio codice per uno splitter verticale pensando di avere una risposta semplice, ho scoperto che avevo creato e caricato la mia risorsa:

SetCursor( LoadCursor( ghInstance, "IDC_SPLITVERT" ));

Ricordo vagamente di aver investito molto tempo e sforzi per trovare il modo in cui il sistema lo faceva, quindi (la mia ipotesi) è che non esiste un'ICONA di sistema prontamente disponibile per svolgere il lavoro, quindi è meglio lanciarne una propria.

Questa è una di quelle volte in cui vorrei sbagliarmi, perché mi sarebbe piaciuto che ci fosse un'icona di sistema per questo lavoro.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top