Problema allineamento testo in buttonbmp

Moderator: Enrico Maria Giordano

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

Problema allineamento testo in buttonbmp

Post by Marco Turco »

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
Contact:

Post by Marco Turco »

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
Enrico Maria Giordano
Posts: 7355
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia
Contact:

Post by Enrico Maria Giordano »

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
Marco Turco
Posts: 858
Joined: Fri Oct 07, 2005 12:00 pm
Location: London
Contact:

Post by Marco Turco »

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
_


Qualche idea ?

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

Post by Enrico Maria Giordano »

Questo è un esempio funzionante:

Code: Select all

#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
Marco Turco
Posts: 858
Joined: Fri Oct 07, 2005 12:00 pm
Location: London
Contact:

Post by Marco Turco »

Ho provato ma non funziona.
Forse perché definisco il bottone da risorsa ?
User avatar
Enrico Maria Giordano
Posts: 7355
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia
Contact:

Post by Enrico Maria Giordano »

Così funziona:

Code: Select all

#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

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
Post Reply