2010-06-09 3 views
7

Ho una casella div che deve apparire su un oggetto ActiveX, ma sembra che un oggetto ActiveX abbia uno z-index infinitamente alto, anche se ho impostato un indice basso . La mia casella di divisione continua a essere visualizzata sotto l'oggetto ActiveX. Qualche idea?Posizionare un div su un oggetto activeX

risposta

6

Dovrai posizionare un iframe trasparente sull'oggetto che vuoi coprire.

trovato this esempio traccia

+0

Questa era parte della risposta (rendendola trasparente non ha funzionato per me), ma ho finito con l'uso di jQuery per mostrare/nascondere un iframe con le dimensioni e la posizione esatte della casella di divisione, come mostrato nella casella di divisione o nascosto. Grazie per l'aiuto! –

+0

Felice di essere di aiuto. È stato presentato con lo stesso problema un po 'indietro e mi ci è voluto troppo tempo per capirlo. – Laramie

1

Un vantaggio Windowless controlli ActiveX è che they participate in overlapping 2-D layout

Sebbene modificare il controllo per renderlo finestra non può essere pratico.

Edit:

ho trovato a sample that demonstrate this using the flash player ActiveX control. Flash può essere utilizzato in entrambe le modalità con finestre e senza finestre. Questo esempio semplifica il passaggio da una di queste all'altra e la visualizzazione di una div in sovrapposizione in ciascuna modalità.

I controlli senza finestre sono implementati in un modo che non richiede che abbiano una propria finestra. Ciò significa che nessun WindowProc e nessuna superficie di disegno dedicata.

Invece si ricevono messaggi implementando IOleInPlaceObjectWindowless e si può ottenere il contesto di disegno GDI tramite IOleInPlaceSiteWindowless.

+0

Sembra fantastico! Sebbene dopo averlo letto, non sono ancora sicuro su come implementare un controllo ActiveX senza finestra. –