Estoy Tratando de agregar una imagen a un botón existente..me han hecho que, hasta cierto punto, el problema es que puedo añadir un ownerdrawn Imagen, pero no soy capaz de añadir el extact imagen que quiero.. por ejemplo ver en el siguiente código

CButton* pBtn= (CButton*)GetDlgItem(ID_WIZBACK);

   pBtn->ModifyStyle( 0, BS_ICON );

   HICON hIcn= (HICON)LoadImage(
        AfxGetApp()->m_hInstance,
  MAKEINTRESOURCE(IDI_ICON3),
        IMAGE_ICON,
        0,0, //use actual size
        LR_DEFAULTCOLOR
    );

    pBtn->SetIcon( hIcn );

con el código de arriba soy la conversión de la imagen a un icono para agregar a mi botón…¿cómo puedo agregar la exacta imagen de mapa de bits directamente a un botón existente.Por favor ayuda me frnds..

sí,voy a hacer eso.

OriginalEl autor kiddo | 2010-01-12

6 Comentarios

  1. 2

    De hecho, me ha solucionado el problema..lo que hice fue reemplazado el HICON con HBITMAP y su trabajo perfecto…básicamente iba a funcionar bien, pero en mi caso cuando me carga el icono en el botón el fondo del icono que no se estaba cambiando…traté de mapa de bits, a continuación, es un gran trabajo. Ahora estoy trabajando en el posicionamiento de la Imagen y añadir texto…creo que podría ir a través de

    Usted puede marcar esto como la respuesta a continuación.

    OriginalEl autor kiddo

  2. 2

    Pasos para la asignación de mapa de bits en el botón de mfc :

    1. Crear el objeto de mapa de bits
    2. De carga de mapa de bits mediante el uso de LoadBitmap()
    3. Obtener el Mango de un botón mediante la id y GetDlgItem() método
    4. Modificar el estilo, así que podemos asignar mapa de bits para que
    5. uso SetBitmap() en el botón de la manija para asignar mapa de bits

    Código :

    CBitmap bmp;
    
    bmp.LoadBitmap( IDB_BITMAP4 );
    
    CButton* pButton = (CButton* )GetDlgItem(IDC_BUTTON1);
    
    pButton->ModifyStyle(0,BS_BITMAP);
    
    pButton->SetBitmap(bmp);
    

    OriginalEl autor Amruta Ghodke

  3. 1

    Podría subclase botón existente utilizando CBitmapButton::SubclassWindow, a continuación, utilizar LoadBitmaps.

    Cómo llamar a SubclassWindow?

    OriginalEl autor Kirill V. Lyadvinsky

  4. 1

    no sabes lo mucho que esto ayudó a salir. Gracias por publicar. También tenemos que cambiar un par de cosas de otras mapa de bits así …

    CButton* pBtn= (CButton*)GetDlgItem(ID_MYDIALOG);
    pBtn->ModifyStyle( 0, BS_BITMAP );
    
    HBITMAP hIcn= (HBITMAP)LoadImage(
      AfxGetApp()->m_hInstance,
      MAKEINTRESOURCE(IDB_MYPIC),
      IMAGE_BITMAP,
      0,0, //use actual size
      LR_DEFAULTCOLOR
      );
    
    pBtn->SetBitmap( hIcn );
    

    OriginalEl autor Fractal

  5. 0

    Utilizar el botón de clases a partir del Feature Pack. Tienen soporte para mostrar el texto y las imágenes en los botones, su regular botón no puede hacer eso. Mirar el ‘muestras’ en el directorio en su VS directorio de instalación.

    OriginalEl autor Roel

  6. 0

    Quiero agregar algunas ideas para @Amruta Ghodke ‘s respuesta:

    Usted puede cambiar el tamaño del botón usando el GetWindowRect y SetWindowPos funciones. Ver un ejemplo a continuación:

    CRect rc;
    
    pButton->GetWindowRect(rc);
    pButton->SetWindowPos(NULL, rc.left, rc.top, myWidth, myHeight, SWP_NOSENDCHANGING | SWP_NOACTIVATE | SWP_NOZORDER | SWP_NOMOVE);
    

    Si desea mostrar imágenes transparentes, utilizar el software Pixelformer para convertir sus archivos Png a la Alfa-habilitado Bmp. Usted tendrá que:

    1. Ir a la Imagen->Propiedades y establecer RGB color with alpha channel
    2. Exportar el archivo con formato A8:R8:G8:B8 y movilidad Premultiplied alpha y Top-down row order

    OriginalEl autor DannyRitiu

Dejar respuesta

Please enter your comment!
Please enter your name here