[C con Clase] Imagen de fondo centrada

Wally aypotua en gmail.com
Vie Feb 22 16:29:58 CET 2008


Hola a Todos los de la lista!!!
Bue mi duda es esta:
Quiero poner una imagen de fondo en mi ventana principal logre hacer
esto pero la imagen aparece varias veces como mosaico, yo quiciera que
aparezca en forma centrada.
Desde ya muchas gracias. Le dejo el codigo de la ventana principal:

int WINAPI WinMain(HINSTANCE hInstancia, HINSTANCE hinstanciaPrev,
LPSTR lpLineaCmd, int nEstado)
{
WNDCLASSEX PrincipalWIN;
/*********************************/
LOGBRUSH b_ground;
b_ground.lbStyle = BS_PATTERN;
b_ground.lbColor = DIB_RGB_COLORS;
b_ground.lbHatch = (long)LoadImage(NULL,TEXT("logo.bmp"),
IMAGE_BITMAP, 100, 100,LR_LOADFROMFILE);
/*********************************/


PrincipalWIN.cbSize        = sizeof(WNDCLASSEX);
PrincipalWIN.style         = CS_HREDRAW | CS_VREDRAW;
PrincipalWIN.lpfnWndProc   = ProcedimientoVentana;
PrincipalWIN.cbClsExtra    = 0;
PrincipalWIN.cbWndExtra    = 0;
PrincipalWIN.hInstance    = hInstancia;
PrincipalWIN.hIcon         = LoadIcon (NULL, IDI_APPLICATION);
PrincipalWIN.hCursor       = LoadCursor (NULL, IDC_ARROW);
PrincipalWIN.lpszMenuName  = "Menu";
PrincipalWIN.lpszClassName = szNombreAplicacion;
PrincipalWIN.hIconSm       = LoadIcon (NULL, IDI_APPLICATION);

/*************************************************/
if(b_ground.lbHatch)
PrincipalWIN.hbrBackground = CreateBrushIndirect(&b_ground);
else
PrincipalWIN.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
/*************************************************/

if (!RegisterClassEx(&PrincipalWIN))
{
MessageBox(NULL, "NO SE PUDO DAR DE ALTA LA VENTANA, ABORTANDO
EJECUCION", "!ERROR¡",
           MB_ICONEXCLAMATION | MB_OK);
return FALSE;
}

HWND hwnd;

hwnd = CreateWindowEx(
                      0,
                      szNombreAplicacion,
                      "proyecto1",
                      WS_OVERLAPPEDWINDOW,
                      CW_USEDEFAULT,
                      CW_USEDEFAULT,
                      0,0,
                      HWND_DESKTOP,
                      NULL,
                      hInstancia,
                      NULL
                      );

if (hwnd == NULL)
   {
MessageBox(NULL, "Error al crear la ventana, ABORTANDO EJECUCION", "!ERROR¡",
           MB_ICONEXCLAMATION | MB_OK);
           return FALSE;
   }

ShowWindow(hwnd, SW_SHOWMAXIMIZED);
MSG men;

/*-----------------------SQL------------------------*/
if(!(myData = mysql_init(0)))
{
MessageBox(NULL, "ERROR: imposible crear el objeto myData.", "!ERROR¡",
           MB_ICONEXCLAMATION | MB_OK);
           return FALSE;
}
if(!mysql_real_connect(myData, NULL, "root", "", "base1", MYSQL_PORT, NULL, 0))
{
 MessageBox(NULL,mysql_error(myData) , "!ERROR¡", MB_ICONEXCLAMATION | MB_OK);
return FALSE;
}

if(mysql_select_db(myData, "base1")) {
 MessageBox(NULL,mysql_error(myData) , "!ERROR¡", MB_ICONEXCLAMATION | MB_OK);
mysql_close(myData);
return FALSE;
}
/*-----------------------SQL------------------------*/



while (GetMessage(&men, 0, 0, 0) == TRUE)
     {
     TranslateMessage(&men);
     DispatchMessage(&men);
     }
     return men.wParam;
}




Más información sobre la lista de distribución Cconclase