Cargar Bitmap como fondo de Dialog Box (help )
(1/1)
codeliber:
Hola compis :),
A ver si alguien me hecha una mano en esto, porfa.
Deseo poner un fondo bitmap a un DialogBox (y así quitar ese gris triste y feo jo!!!) ;D
Tengo lo siguente:
// *********** file de recurso *.rc **************
IDB_BITMAP1 BITMAP "bitmap.bmp"
PruebaFondo DIALOGEX 10, 10, 226, 180
STYLE DS_MODALFRAME | DS_SETFOREGROUND | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Prueba que no chuta ! jo!!!"
FONT 8, "Helv"
BEGIN
CONTROL "", ID_FONDO, "STATIC", SS_BITMAP | WS_CHILD | WS_VISIBLE, 20, 20, 200, 150
END
// *********** file *.cpp **********************
BOOL CALLBACK Prueba_Fondo (HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
static HWND hBitmap;
static HBITMAP hBitmapRes;
static HINSTANCE hInstance;
switch( msg ) {
case WM_CREATE: hBitmap = GetDlgItem( hDlg, ID_FONDO );
hBitmapRes = LoadBitmap( hInstance ,MAKEINTRESOURCE( IDB_BITMAP1 ) );
return FALSE;
case WM_INITDIALOG: SendMessage( hBitmap, STM_SETIMAGE, (WPARAM)IMAGE_BITMAP, (LPARAM)hBitmapRes );
return FALSE;
...... etc... etc..... etc.....
// *******************************************
Pues, logicamente... como a veces ocurre... no funciona :laugh:.. !!!
Es que no veo ningun fallo Jo !!! (que seguro hay.. jajajaja ) Alguien que hecha una mano?
Gracias compis :)
codeliber:
Hola family, ;D
Me contexto a mi mismo por si alguien le interesa.
El problema radica en que el DialogBox manda msg a WM_INITDIALOG y no a WM_CREATE !!!! :-\
Por eso nunca se puede cargar el fila bitmap.
La solucion es:
switch( msg ) {
case WM_INITDIALOG: hBitmap = GetDlgItem( hDlg, ID_FONDO );
hBitmapRes = LoadBitmap( GetModuleHandle(NULL), MAKEINTRESOURCE( IDB_BITMAP1 ) );
SendMessage( hBitmap, STM_SETIMAGE, (WPARAM)IMAGE_BITMAP, (LPARAM)hBitmapRes );
SetWindowPos( hDlg, HWND_TOPMOST, 0,0,0,0, SWP_NOSIZE + SWP_NOMOVE );
SetForegroundWindow( hDlg );
Gracias y saludos :)
Navegación