Domanda

In WTL, CBtMapButton non supporta l'immagine con strato trasparente, come PNG. Quindi personalizzo il codice per utilizzare GDI + per disegnare PNG, chiamalo come cpngbutton. Ma le cose sono strane su Win XP. Quando il pulsante è sovrapposto da un'altra finestra, il pulsante riceve prima WM_Paint, quindi il genitore, causando un risultato errato.

Inserisci Descrizione dell'immagine qui --->  Inserire l'immagine Descrizione qui

Controllo la risorsa e rimuovi l'attributo ws_tabstop dal modello del pulsante, le cose vanno bene, la finestra genitore riceve prima wm_paint, quindi il pulsante. Cosa causa WS_Tabstop per influenzare l'ordine della verniciatura della finestra?

È stato utile?

Soluzione

Questo è ciò che accade quando non disegni lo sfondo.Che lascia un "buco" nella finestra, vedi i pixel di qualunque finestra sia dietro il tuo.O il desktop se non c'è una talizza fine.Non altrimenti sicuro di cosa ha a che fare con WS_TABSTOP.

Utilizzare la bandiera di stile ws_ex_transparent.Ciò indica a Windows che si desidera che il genitore del pulsante si avvicini nella finestra client per fornire i pixel di sfondo.

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