Domanda

C'è un modo per creare un non modale finestra di dialogo in C ++ MFC che rimane sempre in cima alle altre finestre nell'applicazione? Sto pensando un po 'come la finestra di dialogo Trova in Visual Studio 2005 -. Dove si rimane in cima, ma è ancora possibile modificare il testo sottostante

(se si fa alcuna differenza, non è MDI, è un app di dialogo-based)

È stato utile?

Soluzione

Nish :

  

Rendere il vostro soggiorno finestra sulla parte superiore

     

Non hai visto i programmi che hanno   un'opzione "sempre-stay-on-top"? Bene   la cosa incredibile è che si può   rendere il vostro soggiorno finestra sulla parte superiore con un solo   una riga di codice. In poche parole la   seguente riga nella classe della finestra di dialogo   OnInitDialog () la funzione.

SetWindowPos(&this->wndTopMost,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
     

In sostanza quello che stiamo facendo è quello di utilizzare   le SetWindowPos funzione per modificare   Z-ordine della nostra finestra di dialogo. Noi   rendere il nostro dialogo soggiorno in cima a tutte   altre finestre spostando al top   di Z-ordine. Ora anche voi quando   attivare qualche altra finestra, la nostra finestra   sarà rimanere in cima. Ma vi consiglio   per essere sicuri di sapere esattamente cosa si   stanno facendo quando si esegue questa operazione, perché   potrebbe infastidire la gente se non possono ottenere   la finestra di mezzo, quando   volerlo fare.

Come lei ha ricordato nei commenti, la riga sopra rende la finestra sedersi sulla cima di ogni applicazione. Avrai bisogno di fare

SetWindowPos(&this->wndTop,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);

Per effettuare una finestra di sedersi sulla parte superiore del solo vostra applicazione.

-Adam

Altri suggerimenti

La risposta accettata fallisce per Windows 7 o superiore. (O forse il suo me) Ma fare la finestra di dialogo non modale come comparsa, invece di bambino lo risolve. Ora viene posizionato finestra di dialogo principale WRT, ma è possibile scrivere codice per vincolare ovunque. Utilizzando il nessun bordo o barra in alto lo rende una semplice finestra.

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