Ver Mensaje Individual
  #1  
Antiguo 12-09-2007
abracadabra abracadabra is offline
Miembro
 
Registrado: jul 2005
Posts: 30
Reputación: 0
abracadabra Va por buen camino
Creación de un control menú. Problemas con estilo de ventana.

Hola amigos.
Ante todo pido disculpas por lo poco descriptivo que puede llegar a ser el título del topic (No soy bueno resumiendo ideas en una sola oración)
Estoy realizando un control que se comporta como un TMainMenu. como cualquier menú, cuando se selecciona un item se despliega su respectivo submenu .
Ejemplo:
Item del menú principal: "Archivo"
Submenu del item "Archivo": El submenu (osea el rectángulo que se muestra cuando se hace click en alguna opción del menu pricipal) es un control TWinControl donde se dibuja la lista formada por las opciones Abrir, Cerrar, Guardar, etc.

Inicialmente tenía un problema:
En un menu comun y corriente sucede que cuando la altura de un submenú sobrepasa o excede la altura de la ventana que lo contiene, este submenu se dibuja por sobre la ventana. En el menu que estoy desarrollando no pasaba eso, es decir si la altura del submenú era mayor al de la ventana que lo contenía, solo se mostraba el submenú hasta donde termina la ventana, eso lo solucioné con el siguiente código:

procedure TSubMenu.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.Style := WS_POPUP;
end;

El establecer el estilo de control a WS_POPUP, me trajo un nuevo problema que no se como solucionarlo: Cuando hago click en cualquier opción del submenú, la ventana de la aplicación principal pierde el foco. Ya que al declararse el submenu como WS_POPUP este se comporta como una ventana independiente de la aplicación y como concecuencia la aplicación pierde foco. Como puedo hacer que para cuando haga click en el submenú , la ventana de aplicación principal no pierda el foco (Tal como sucede en un menú comun y corriente)?
Gracias de antemano.

Última edición por abracadabra fecha: 12-09-2007 a las 02:29:37.
Responder Con Cita