Problema allineamento testo in buttonbmp

Moderator: Enrico Maria Giordano

Problema allineamento testo in buttonbmp

Postby Marco Turco » Mon Mar 20, 2006 6:31 pm

Salve,
ho un problema con i buttonbmp con FWH27 (marzo),
gestendoli come risorsa.

In pratica l'immagine bitmap mi appare al centro del bottone sovrapponendosi al testo.

Ho creato un self-contained che mostra il problema
scaricabile da www.softwarexp.co.uk/beta/test.zip

Qualche idea ?

Grazie in anticipo.

Marco
User avatar
Marco Turco
 
Posts: 858
Joined: Fri Oct 07, 2005 12:00 pm
Location: London

Re: Problema allineamento testo in buttonbmp

Postby Enrico Maria Giordano » Mon Mar 20, 2006 9:39 pm

Hai provato a disegnare il bitmap in modo tale che non sia al centro dell'immagine?

EMG
User avatar
Enrico Maria Giordano
 
Posts: 8315
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Postby Marco Turco » Tue Mar 21, 2006 8:21 am

La bitmap come puoi vedere nell'esempio
è molto più piccola del bottone. Non è pensabile disegnare una bitmap apposta per le dimensioni del bottone.

Nelle FWH di febbraio funzionava il comando CANCEL TEXTRIGHT che spostava il testo a dx e la bitmap a sx ma ora questo comando non è più operativo.

Marco
User avatar
Marco Turco
 
Posts: 858
Joined: Fri Oct 07, 2005 12:00 pm
Location: London

Postby Enrico Maria Giordano » Tue Mar 21, 2006 8:43 am

Allora modifica il metodo Paint(), ad esempio:

nLeft = ::nWidth() - nBmpWidth( ::hBitmap ) * 1.2

E poi metti degli spazi in coda al testo.

Altro non mi viene in mente.

EMG
User avatar
Enrico Maria Giordano
 
Posts: 8315
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Postby Marco Turco » Tue Mar 21, 2006 9:52 am

Grazie. provo a chiedere anche sul news inglese,
Sai per caso anche come riportare il testo di un bottone su più righe ?
Dovrei fare un bottone (normale - non un buttonbmp)
con il testo riportato su 2 righe tipo:

Esporta
sullo scadenzario


Qualche idea ?

Marco
User avatar
Marco Turco
 
Posts: 858
Joined: Fri Oct 07, 2005 12:00 pm
Location: London

Postby Enrico Maria Giordano » Tue Mar 21, 2006 10:08 am

Questo è un esempio funzionante:

Code: Select all  Expand view
#include "Fivewin.ch"


#define CR CHR( 13 )

#define BS_MULTILINE 8192


FUNCTION MAIN()

    LOCAL oDlg, oBtn

    DEFINE DIALOG oDlg

    @ 1, 1 BUTTON oBtn PROMPT "&Close" + CHR( 13 ) + "the dialog";
           SIZE 50, 30;
           ACTION oDlg:End()

    oBtn:nStyle = NOR( oBtn:nStyle, BS_MULTILINE )

    ACTIVATE DIALOG oDlg;
             CENTER

    RETURN NIL


EMG
User avatar
Enrico Maria Giordano
 
Posts: 8315
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Postby Marco Turco » Tue Mar 21, 2006 11:18 am

Ho provato ma non funziona.
Forse perché definisco il bottone da risorsa ?
User avatar
Marco Turco
 
Posts: 858
Joined: Fri Oct 07, 2005 12:00 pm
Location: London

Postby Enrico Maria Giordano » Tue Mar 21, 2006 11:48 am

Così funziona:

Code: Select all  Expand view
#include "Fivewin.ch"


#define CR CHR( 13 )

#define BS_MULTILINE 8192


FUNCTION MAIN()

    LOCAL oDlg, oBtn

    DEFINE DIALOG oDlg;
           RESOURCE "TEST"

    REDEFINE BUTTON oBtn;
             ID 201 OF oDlg;
             ACTION oDlg:End()

    oBtn:SetText( "&Close" + CHR( 13 ) + "the dialog" )

    ACTIVATE DIALOG oDlg;
             CENTER

    RETURN NIL


Code: Select all  Expand view
TEST DIALOG 184, 107, 161, 127
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
FONT 8, "MS Sans Serif"
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
{
CONTROL "", 201, "BUTTON", BS_PUSHBUTTON | BS_MULTILINE | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 10, 10, 65, 40
}


EMG
User avatar
Enrico Maria Giordano
 
Posts: 8315
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia


Return to All products support

Who is online

Users browsing this forum: No registered users and 20 guests