visual-studio visual-c++ mfc

visual studio - ¿Cómo se puede traer un control al frente en mfc?



visual-studio visual-c++ (7)

Creo que el control de frente será el último control que ocurra en el archivo de rc. En otras palabras, el editor de diálogo dibujará cada control como se encuentra de arriba a abajo en el archivo rc, superponiéndolos cuando sea necesario.

Puede editar el archivo rc para reordenarlos, o puede cambiar el orden de las pestañas en el editor, que hace lo mismo, ya que el orden de las pestañas también se establece en función del orden en que se producen los controles en el archivo. Que yo sepa, MFC no ofrece ninguna otra forma de superponer controles superpuestos en tiempo de diseño.

¿Cómo se cambia el orden Z de los controles en MFC en el momento del diseño , es decir, no puedo usar SetWindowPos o hacerlo en tiempo de ejecución? Quiero ver el orden z modificado en el diseñador (incluso si tengo que recurrir a direct- editando el código .rc).

Tengo un cuadro de diálogo MFC al que agrego controles. Si hay superposición entre los bordes de los controles, quiero llevar uno al frente del otro. En Windows Forms o WPF, etc. Puedo llevar al frente, Enviar al reverso, Traer adelante, Enviar de vuelta. No encuentro estas opciones en MFC, ni puedo decir cómo determina lo que está delante, ya que un control recién agregado a menudo está detrás de un control que estaba allí anteriormente. ¿Cómo puedo manipular el orden Z en MFC? Incluso si tengo que manipular el código de archivo .rc directamente (es decir, ejecute la ejecución alrededor del diseñador).


En realidad, si desea hacer esto en el editor de recursos, puede cortar el artículo y luego pegarlo nuevamente como una solución rápida y sucia. Solo Ctrl-X luego Ctrl-V.

La edición del archivo RC también funcionará.


Puede usar CWnd :: SetWindowPos () para controlar el orden Z de sus controles, sin cambiar su posición en la ventana principal.


GetDlgItem(IDC_MYCONTROL)->SetWindowPos(HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);


En el editor de recursos de diálogo MSVC 2005 hay una opción para establecer el orden de tabulación. En MSVC 2005 se encuentra en el menú Formato, Orden de tabulación .

El orden de tabulación que muestra esta opción de menú es el mismo orden en el que se escriben los controles en el archivo de recursos.


En Visual Studio 6.0 haga lo siguiente.

Abra la pantalla de diálogo (en la vista del diseñador)

Presiona Ctrl + D

Las órdenes de pestañas se mostrarán para cada control

Comience a hacer clic en los controles en el orden de las pestañas que espera ver en tiempo de ejecución (es decir, el control en el que haga clic primero tendrá el orden de las pestañas en 1 y así sucesivamente ...)


GetDlgItem(IDC_CONTROL1)->SetWindowPos(&wndTop, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE)