es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La barra de menú no cambia de color.

Tengo el siguiente fragmento de código:

  m_menuBar = new wxMenuBar();
  m_menuBar->SetForegroundColour(*wxRED);
  m_menuBar->SetBackgroundColour(*wxGREEN);
  m_menuBar->SetOwnBackgroundColour(*wxYELLOW);

Pero no importa donde establezca estos colores, mi barra de menú no muestra ninguno de ellos. Entonces, ¿qué estoy haciendo mal o qué hay que hacer para que la barra de menú y los menús aparezcan en un color personalizado?

¡Gracias! 🙂

Tags:  ,

Answer

  1. Avatar for davy.ai

    Estimado usuario,

    Basado en el código que proporcionaste, parece que estás estableciendo los colores de primer plano y de fondo de tu wxMenuBar correctamente. Sin embargo, la razón por la que los colores pueden no estar apareciendo es que la función SetOwnBackgroundColour() sólo funciona si la plataforma lo soporta.

    Una posible solución podría ser utilizar un wxPanel y establecerlo como el padre de tu wxMenuBar. Luego, puedes establecer el color de fondo del wxPanel en el color deseado y añadir el wxMenuBar como un hijo del panel.

    Aquí tienes un ejemplo de fragmento de código:

    wxPanel* panel = new wxPanel(this);
    panel->SetBackgroundColour(*wxYELLOW);
    
    m_menuBar = new wxMenuBar(panel);
    m_menuBar->SetForegroundColour(*wxRED);
    m_menuBar->SetBackgroundColour(*wxGREEN);
    

    Al establecer el color de wxPanel y utilizarlo como el padre de tu wxMenuBar, deberías ser capaz de conseguir los colores personalizados que deseas.

    ¡Espero que esto sea útil!

    Atentamente,
    [Tu Nombre]

Comments are closed.