Page 1 of 1

Poner imagen en MDI

Posted: Mon Nov 24, 2008 4:16 pm
by jaba
Saludos para el Foro

Alguien me puede indicar como coloco una imagen en una ventana MDI

Cordialmente

Jairo Barbosa

Posted: Mon Nov 24, 2008 5:06 pm
by jrestojeda
Hola amigo.
Prueba lo siguiente:

Code: Select all

DEFINE BRUSH oBrush1 RESOURCE "IMAGEN" // Defines la imagen

Code: Select all

DEFINE WINDOW oWnd1 MDICHILD OF oWnd BRUSH oBrush1 ICON "A_ICONO1";
   TITLE "ABM de clientes";
   VSCROLL HSCROLL
Nota: La imagen está dentro de una DLL de recursos, dentro de un RC es lo mismo.

Espero te sirva.
Saludos, desde Argentina, Esteban.

Posted: Mon Nov 24, 2008 5:23 pm
by jaba
jrestojeda wrote:Hola amigo.
Prueba lo siguiente:

Code: Select all

DEFINE BRUSH oBrush1 RESOURCE "IMAGEN" // Defines la imagen

Code: Select all

DEFINE WINDOW oWnd1 MDICHILD OF oWnd BRUSH oBrush1 ICON "A_ICONO1";
   TITLE "ABM de clientes";
   VSCROLL HSCROLL
Nota: La imagen está dentro de una DLL de recursos, dentro de un RC es lo mismo.

Espero te sirva.
Saludos, desde Argentina, Esteban.
*--------------------------------------------------------------------------
Bueno Amigo Gracias por tu respuesta,
me gustaria preguntarte si con ese metodo la imagen se acomoda en el monotor a las distintas resoluciones?
Tenia un arreglo con pero al hacerla la ventana mdi desaparecio la imagen.

Gracias de antemano por tu ayuda

Jairo Barbosa

Posted: Mon Nov 24, 2008 5:48 pm
by jrestojeda
No amigo, la imagen no se adapta a distintas resoluciones.
Yo eso lo soluciono con diferentes Brush.

Code: Select all

ResH:=oWnd:nHorzRes()
ResV:=oWnd:nVertRes()

IF ResH=800 .AND. ResV=600
   SET BRUSH OF oWnd TO oBrush1
ELSE
   IF ResH=1024 .AND. ResV=768
      SET BRUSH OF oWnd TO oBrush2
   ENDIF
ENDIF
oBrush1 y oBrush2 son dos imágenes distintas con los tamaños ya preestablecidos.
En el IF Solo está para dos resoluciones pero puedes poner las que quieras, no se si es la mejor forma, pero es la forma en la que yo resuelvo este tema.

Espero te sirva.
Saludos.

Re: Poner imagen en MDI

Posted: Mon Nov 24, 2008 8:07 pm
by FranciscoA
jaba wrote:Saludos para el Foro

Alguien me puede indicar como coloco una imagen en una ventana MDI

Cordialmente

Jairo Barbosa

Yo lo hago de la manera siguiente. Espero te sirva.

Function Main()
local oBmp

DEFINE BITMAP oBmp file ".\MiBmp.bmp"
...
...
oWnd:bPainted := { | hDC | PongaBmp( hDC , oBmp , oWnd ) }

ACTIVATE WINDOW oWnd MAXIMIZED

oBmp:End()
SET RESOURCES TO
Return nil

//-----------------------------------------//FWH
STATIC FUNCTION PongaBmp( hDC, oBmp, oWnd ) //BmpTiled(
local nWidth := oWnd:nWidth(), nHeight := oWnd:nHeight()
local nRow := 0, nCol := 0, n
local nBmpWidth := oBmp:nWidth(), nBmpHeight := oBmp:nHeight()

if oBmp:hBitmap == 0
return nil
endif

while nRow < nHeight
nCol = 0
while nCol < nWidth
PalBmpDraw( hDC, nRow, nCol, oBmp:hBitmap )
nCol += nBmpWidth
end
nRow += nBmpHeight
end
return nil


Saludos
Francisco J. Alegria P.

Re: Poner imagen en MDI

Posted: Mon Nov 24, 2008 9:11 pm
by jaba
FranciscoA wrote:
jaba wrote:Saludos para el Foro

Alguien me puede indicar como coloco una imagen en una ventana MDI

Cordialmente

Jairo Barbosa

Yo lo hago de la manera siguiente. Espero te sirva.

Function Main()
local oBmp

DEFINE BITMAP oBmp file ".\MiBmp.bmp"
...
...
oWnd:bPainted := { | hDC | PongaBmp( hDC , oBmp , oWnd ) }

ACTIVATE WINDOW oWnd MAXIMIZED

oBmp:End()
SET RESOURCES TO
Return nil

//-----------------------------------------//FWH
STATIC FUNCTION PongaBmp( hDC, oBmp, oWnd ) //BmpTiled(
local nWidth := oWnd:nWidth(), nHeight := oWnd:nHeight()
local nRow := 0, nCol := 0, n
local nBmpWidth := oBmp:nWidth(), nBmpHeight := oBmp:nHeight()

if oBmp:hBitmap == 0
return nil
endif

while nRow < nHeight
nCol = 0
while nCol < nWidth
PalBmpDraw( hDC, nRow, nCol, oBmp:hBitmap )
nCol += nBmpWidth
end
nRow += nBmpHeight
end
return nil


Saludos
Francisco J. Alegria P.
Jrestojeda , Francisco

Gracias lo estoy probando

Cordialmente

Jairo Barbosa