Page 1 of 1

Auto centering in dialog

Posted: Thu Nov 30, 2006 8:16 pm
by Gilbert
Hi All,

I would like to automatically center a button in a dialog box. I can`t find out how to do this. Is there a way it can be done ?

Regards,

Re: Auto centering in dialog

Posted: Fri Dec 01, 2006 9:06 am
by Enrico Maria Giordano
This is a working sample:

Code: Select all

#include "Fivewin.ch"


FUNCTION MAIN()

    LOCAL oDlg

    LOCAL oBtn

    DEFINE DIALOG oDlg

    @ 0, 0 BUTTON oBtn PROMPT "&Close";
           ACTION oDlg:End()

    ACTIVATE DIALOG oDlg;
             ON INIT CENTERBTN( oDlg, oBtn );
             CENTER

    RETURN NIL


STATIC FUNCTION CENTERBTN( oDlg, oBtn )

    LOCAL aDlgRect := GETCLIENTRECT( oDlg:hWnd )

    LOCAL nDlgWidth  := aDlgRect[ 4 ] - aDlgRect[ 2 ]
    LOCAL nDlgHeight := aDlgRect[ 3 ] - aDlgRect[ 1 ]

    LOCAL nRow := ( nDlgHeight - oBtn:nHeight() ) / 2
    LOCAL nCol := ( nDlgWidth - oBtn:nWidth() ) / 2

    oBtn:Move( nRow, nCol )

    RETURN NIL
EMG

Posted: Fri Dec 01, 2006 9:25 pm
by Gilbert
Hi Enrico,

Hi sure will do some testing this week end.

Thanks

Regards,

Gilbert

Posted: Sat Dec 02, 2006 1:20 am
by Gilbert
Hi Enrico,

It`s a bit more complicated that I tought it would be, but it works nicely.

Thanks
Regards,

Gilbert