ventajas vectorial usos una resolución que mapa imagen formatos entre diferencia desventajas colores características mfc cbitmap

mfc - usos - que es una imagen vectorial



cómo agregar una imagen de mapa de bits a los botones en MFC? (5)

Estoy tratando de agregar una imagen a un botón existente. Lo he hecho hasta cierto punto, el problema es que puedo agregar una imagen creada por el propietario, pero no puedo agregar la imagen extact que deseo. Para el ejemplo, consulte la siguiente tabla 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 anterior estoy convirtiendo el mapa de bits en un ícono para agregar a mi botón ... ¿cómo puedo agregar la imagen exacta de mapa de bits directamente a un botón existente? Por favor, ayúdenme frnds ...


Pasos para asignar bitmap al botón en mfc:

  1. Crear objeto de mapa de bits
  2. Cargar mapa de bits utilizando LoadBitmap ()
  3. Obtener el botón Manejar usando id y método GetDlgItem ()
  4. Modificar el estilo para que podamos asignarle un mapa de bits
  5. use SetBitmap () en el mango del botón para asignar bitmap

Código:

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


Podría subclasificar un botón existente usando CBitmapButton::SubclassWindow , luego usar LoadBitmaps .


Realmente arreglé el problema ... lo que hice fue reemplazar el HICON con HBITMAP y funciona perfectamente ... básicamente ambos funcionarían bien, pero en mi caso cuando cargué el ícono en el botón, el fondo del ícono no cambiaba. Probé Bitmap y funciona muy bien. Ahora estoy trabajando en posicionar la imagen y agregar texto ... creo que podría pasar


Use las clases de botones del Feature Pack. Tienen soporte para mostrar tanto texto como imágenes en los botones, su botón regular no puede hacer eso. Mire el directorio ''samples'' en su directorio de instalación VS.


no sabes cuánto ayudó esto. Gracias por publicar. También tiene que cambiar algunas otras cosas al mapa de bits también ...

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 );