hBitmap := LoadBitmap( GetResources(), 'cerrar' )
DrawBitmap( hDc, hBitmap, 8, aRect[ 4 ] - 45, 37, 20 )Me gustar铆a que se pudiera ejecutar una acci贸n al hacer click en 茅l. Existe alguna manera ? Much铆simas gracias.
Saludos
hBitmap := LoadBitmap( GetResources(), 'cerrar' )
DrawBitmap( hDc, hBitmap, 8, aRect[ 4 ] - 45, 37, 20 )Horacio,
Lo id贸neo es que uses un control TBitmap. Si lo est谩s mostrando sobre una ventana puedes hacer:
@ <nFila>, <nColumna> BITMAP oBmp OF oWnd RESOURCE "cerrar" ;
ON CLICK MsgInfo( "Mi acci贸n" )
Para un di谩logo definido desde recursos:
REDEFINE BITMAP oBmp ID <nId> OF oDlg RESOURCE "cerrar" ;
ON CLICK MsgInfo( "Mi acci贸n" )
Y en el fichero RC lo defines como un control definido por el usuario de clase "TBitmap"
Antonio, esta rutina la utilizo en el m茅todo Paint del dialogo, si utilizo la clase me da errores cada tanto. Por eso decid铆 implementarlo de esta manera. Capaz que se pueda usar la clase pero no he podido dilucidar el porque de los gpf. Gracias
Saludos
Horacio, te estoy contestando desde una tableta, por lo que no tengo el FWH a mano, pero con oDlg:blButtonDown o como se llame, puedes llamar a una funci贸n pas谩ndole nRow y nCol, para saber si has pinchado sobre el Bmp o no. Eso lo hago algunas veces y va muy bien.
Un saludo.
Antol铆n, gracias por tu respuesta. Si pudieras postear un ejemplo te lo agradecer铆a.
Saludos
DEFINE DIALOG ....
聽 聽DEFINE GET ....
聽 聽...
聽 聽oDlg:bPainted 聽:= { |hDc| ( PalbmpLoad(hDc,10,10,hBmp,hPal), .... ) }
聽 聽oDlg:bLClicked := { |nRow,nCol| AccionBmp(nRow,nCol,hBmp) }
ACTIVATE DIALOG ...
Suoponiendo que el Bitmap esta en las coordenadas 10,10 y mide 200X300 (AnchoXAlto)
FUNCTION AccionBmp(nRow,nCol,hBmp)
聽 聽IF nRow > 9 .AND. nRow < 311 .AND. nCol > 9 .AND. nCol < 211
聽 聽 聽 ...
聽 聽 聽 HE PINCHADO SOBRE EL BITMAP
聽 聽 聽 Y REALIZO LA ACCION PREVISTA
聽 聽 聽 ...
聽 聽ENDIF
聽 聽...
RETURN NILMuchas gracias Antol铆n por tu sugerencia, pruebo y comento.
Saludos
Funcion贸 perfectamente. Muchas gracias Antol铆n.
Saludos