FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index All products support Color Dialog
Posts: 80
Joined: Tue Mar 25, 2008 09:03 PM
Color Dialog
Posted: Tue Aug 30, 2011 08:36 PM

Ciao,

Utilizzo GradBrush() per colorare lo sfondo delle fineste di dialogo e mi sono accorto che se passo da dialog 1 a dialog 2 il colore è ok. Mentre quando ritorno da dialog 2 a dialog 1 ed eseguo un refresh … dialog 1 prende il colore del 2 dialogbox .

Ho risolto facendo eseguire nuovamente GradBrush() dopo la chiusura del 2 dialog

@ 3, 2 BUTTON "dialog 2" OF oDlg [u:1sn1wear]ACTION (DIALOG2(),GradBrush( oDlg,nRGB( 255, 255, 255 ), rgb(255,246,143 ))) [/u:1sn1wear]

… ci sono altre idee ??

Gazie e Saluti
Stefano

un pezzo di codice per prova:

// Color Dialog test

include "FiveWin.ch"

static oDlg,oDlg2
//----------------------------------------------------------------------------//

function Main()

   DEFINE DIALOG oDlg TITLE "Dialog 1" FROM 0, 0 TO 20, 40 TRANSPARENT

  @ 3, 2 BUTTON "dialog 2" OF oDlg ACTION DIALOG2()
  • Per ottenere la pittura corretta
  • @ 3, 2 BUTTON "dialog 2" OF oDlg ACTION (DIALOG2(),GradBrush( oDlg,nRGB( 255, 255, 255 ),rgb(255,246,143 )))

    ACTIVATE DIALOG oDlg CENTERED ON INIT GradBrush( oDlg,nRGB( 255, 255, 255 ),rgb(255,246,143 ))

return nil

function DIALOG2()

   DEFINE DIALOG oDlg2 TITLE "Dialog 2" FROM 0, 0 TO 10, 20 TRANSPARENT

  @ 3, 2 BUTTON "dialog 1" OF oDlg2 ACTION (oDlg2:END(),oDlg:refresh())

  ACTIVATE DIALOG oDlg2 CENTERED ON INIT GradBrush( oDlg2,nRGB( 255, 25, 25 ),nRGB(255, 69, 0))

return nil

STATIC FUNCTION GradBrush( oDlgkk,color1,color2)
local hDC, hBmp, hBmpOld,obrush

  hDC = CreateCompatibleDC( oDlgkK:GetDC() )
  hBmp = CreateCompatibleBitMap( oDlgkK:hDC, oDlgkK:nWidth, oDlgkK:nHeight )
  hBmpOld = SelectObject( hDC, hBmp )

  Gradient( hDC, {0, 0, oDlgkk:nHeight, oDlgKk:nWidth } ,color1,color2, .t. )

  DeleteObject( oDlgkK:oBrush:hBrush )
  oDlgkK:oBrush:hBitmap = hBmp
  oDlgkK:oBrush:hBrush = CreatePatternBrush( hBmp )
  SelectObject( hDC, hBmpOld )
  oDlgKk:ReleaseDC()

RETURN (nil)

//-------------------------------------------------------------------//
DLL32 FUNCTION CREATECOMPATIBLEBITMAP( hDC AS LONG,;
nWidth AS LONG,;
nHeight AS LONG) AS LONG;
PASCAL FROM "CreateCompatibleBitmap" LIB "gdi32.dll"

FWH 14.11 + xHarbour + bcc582
Posts: 9020
Joined: Thu Oct 06, 2005 08:17 PM
Re: Color Dialog
Posted: Wed Aug 31, 2011 08:02 AM

Ho provato il tuo esempio ma non ho riscontrato il problema (almeno su XP). Comunque, se la tua versione la supporta, è meglio utilizzare la nuova clausola GRADIENT del comando DEFINE DIALOG.

Comunque, prova ad aggiungere anche la clausola ON PAINT con la chiamata a GradBrush().

EMG

Posts: 842
Joined: Mon Oct 10, 2005 01:29 PM
Re: Color Dialog
Posted: Wed Aug 31, 2011 10:36 AM

Ciao Enrico ,
qualè la nuova clausola GRADIENT del comando DEFINE DIALOG ?
forse _GRADIENTBRUSH ?

Maurizio

Posts: 9020
Joined: Thu Oct 06, 2005 08:17 PM
Re: Color Dialog
Posted: Wed Aug 31, 2011 11:12 AM

Ops! Volevo dire la clausola GRADIENT del comando DEFINE BRUSH, sorry.

EMG

Continue the discussion