StatusBar

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

toya
Usuário Nível 3
Usuário Nível 3
Mensagens: 157
Registrado em: 26 Jul 2004 16:51
Localização: Campo Grande/MS - Brasil
Contato:

StatusBar

Mensagem por toya »

Como poderia ajustar a altura da Window para que a mesma possibilite visualizar a Barra de Ferramentas (item 1 - figura imagem-02.png) ?

Qual seria a possibilidade de gerar a StatusBar como o visual do item 2- figura imagem-02.png ?

Gerando via HMG 3.3.1. estou obtendo conforme a imagem-h02.png
Anexos
imagem-h02.png
imagem-h02.png (11.31 KiB) Exibido 1059 vezes
imagem-02.png
Elcio Carlos
(toya)
Ahora en la version 6.5
toyasis@gmail.com (e-mail)
toyaskype (skype)
http://www.toyanet.com.br
https://www.facebook.com/profile.php?id=100009195956044

FWH 11.8+PellesC+xHarbour.org 1.2.1+SqlRDD
Clippeiro por opção, Fivewiner por amor ao Clipper...
2015 - Iniciante/Aprendiz de HMG...
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

StatusBar

Mensagem por Pablo César »

Olá Elcio, não sei se eu entendi direito.

Mas eu acho que se você quer inserir uma imagem dentro de um StatusBar em HMG, eu partiria com apenas uma exibição de imagem,, utilizando o control IMAGE. E adicionaria texto com a biblioteca BT em imagem. A altura da imagem a daria o control IMAGE com STRECH = .T.

Imagens també aceita evento ONCLICK para adicionar um ACTION.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
toya
Usuário Nível 3
Usuário Nível 3
Mensagens: 157
Registrado em: 26 Jul 2004 16:51
Localização: Campo Grande/MS - Brasil
Contato:

StatusBar

Mensagem por toya »

Devo estar comentendo algum erro:

Em main_form_onpaint() executo:

Código: Selecionar todos

hDC := BT_CreateDC ( "Main", BT_HDC_INVALIDCLIENTAREA , @BTstruct )
BT_DrawGradientFillVertical( hDC,;
                             0,0,;
                             BT_ClientAreaWidth( "Main" ),;
                             BT_ClientAreaHeight( "Main" ),;
                             {154, 192, 205}, {154, 192, 205} )
BT_DrawBitmapAlphaBlend( hDC, 756, 8, 320, 240, 255, BT_COPY, BT_hBitmap )

//--- aqui tento pintar o StatusBar
BT_DrawGradientFillVertical( hDC,;
                             0,;
                             0,;
                             BT_ClientAreaWidth( "Main" ),;
                             BT_StatusBarHeight( "Main" ),;
                             WHITE, BLACK )
BT_DeleteDC( BTstruct ) 
Elcio Carlos
(toya)
Ahora en la version 6.5
toyasis@gmail.com (e-mail)
toyaskype (skype)
http://www.toyanet.com.br
https://www.facebook.com/profile.php?id=100009195956044

FWH 11.8+PellesC+xHarbour.org 1.2.1+SqlRDD
Clippeiro por opção, Fivewiner por amor ao Clipper...
2015 - Iniciante/Aprendiz de HMG...
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

StatusBar

Mensagem por Pablo César »

toya escreveu:Devo estar comentendo algum erro
Oi Elcio, eu acho que sim. poruqe as funções que você está tentando utilizar eu tenho visto para mudar os fundos das telas. Nunca soube que dá para mudar o fundo do StatusBar. Vocês não deixou em claro quais são as suas intenções ou eu ao menos não entendi...

Imagem

Se for algo similar ao que mostra a imagem, eu estou muito interessado em saber. Mas colocar imagem no StatusBar ? Parece-me algo meio sem nexo (desculpe se te ofendo com a minha opinião). Mas mudar a core até acho em interessante.

Parabéns pelas suas inquietudes de novas atribuições. Acho legal isso.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
toya
Usuário Nível 3
Usuário Nível 3
Mensagens: 157
Registrado em: 26 Jul 2004 16:51
Localização: Campo Grande/MS - Brasil
Contato:

StatusBar

Mensagem por toya »

Código: Selecionar todos

#include "hmg.ch"
#include "bosTaurus.ch"
#define CORTOYA { 154,192,205 }

MEMVAR _HMG_SYSDATA

declare window Main

Function main_form_onpaint

local  hDC
local BTstruct
local cAux := ""
local aAux := {}
local nRow := 0
local BT_hBitmapStatusBar := BT_BitmapLoadFile ( "msg_bar.bmp" )
local i := 0

BT_hBitmap := BT_BitmapLoadFile ( cPathAux + "\logo_gnnpx_hmg.png" )
hDC := BT_CreateDC ( "Main", BT_HDC_INVALIDCLIENTAREA , @BTstruct )
BT_DrawGradientFillVertical( hDC,;
                             0,0,;
                             BT_ClientAreaWidth( "Main" ),;
                             BT_ClientAreaHeight( "Main" ),;
                             CORTOYA, CORTOYA )
BT_DrawBitmapAlphaBlend( hDC, 756, 8, 320, 240, 255, BT_COPY, BT_hBitmap )

// usar assim:
//--- StatusBar (1)
BT_DrawGradientFillVertical( hDC,;
                             Main.Height - 150,;
                             0,;
                             BT_ClientAreaWidth( "Main" ),;
                             BT_StatusBarHeight( "Main" ),;
                             {154, 192, 205 }, BLACK )

// ou assim:
//--- StatusBar (2)
BT_DrawBitmapAlphaBlend( hDC, Main.Height - 100, 0, BT_ClientAreaWidth( "Main" ), BT_StatusBarHeight( "Main" ), 255, BT_STRETCH, BT_hBitmapStatusBar )

BT_DeleteDC( BTstruct ) 

return Nil
O que não estou sabendo é como descobrir as coordenadas da StatusBar para poder fazer o posicionamento correto do 'StatusBar (2)'
Anexos
imagem-h04.png
Elcio Carlos
(toya)
Ahora en la version 6.5
toyasis@gmail.com (e-mail)
toyaskype (skype)
http://www.toyanet.com.br
https://www.facebook.com/profile.php?id=100009195956044

FWH 11.8+PellesC+xHarbour.org 1.2.1+SqlRDD
Clippeiro por opção, Fivewiner por amor ao Clipper...
2015 - Iniciante/Aprendiz de HMG...
Claudio Soto
Colaborador
Colaborador
Mensagens: 566
Registrado em: 27 Ago 2012 12:31
Localização: Uruguay
Contato:

StatusBar

Mensagem por Claudio Soto »

toya escreveu:O que não estou sabendo é como descobrir as coordenadas da StatusBar para poder fazer o posicionamento correto do 'StatusBar (2)'
Las coordenadas de posición del StatusBar son:

Código: Selecionar todos

nCol := 0
nRow := BT_ClientAreaHeight( cFormName ) - BT_StatusBarHeight ( cFormName )
nWidth := BT_StatusBarWidth ( cFormName )
nHeight := BT_StatusBarHeight ( cFormName )
Saludos.
Dr. Claudio Soto
(Uruguay)
http://srvet.blogspot.com
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

StatusBar

Mensagem por Pablo César »

Gracias Claudio por responder.

Agora que eu entendi o que você queria Elcio. Você precisava saber a altura (tamanho) do StatusBar para poder exibir o tamanho certo do teu ClientAreaHeight.

Assim como demostrou o Claudio, tem o C:\hmg.3.3.1\SAMPLES\BosTaurus\Demo7.prg como exemplo.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
toya
Usuário Nível 3
Usuário Nível 3
Mensagens: 157
Registrado em: 26 Jul 2004 16:51
Localização: Campo Grande/MS - Brasil
Contato:

StatusBar

Mensagem por toya »

ok...

Determinadas a coordenadas corretamente...
O problema é que não está sobrepondo quando executo:
BT_DrawBitmapAlphaBlend( hDC, nRow, nCol, nWidth, nHeight, 255, BT_STRETCH, BT_hBitmapStatusBar )

Código: Selecionar todos

#include "hmg.ch"
#include "bosTaurus.ch"
#define CORTOYA { 154,192,205 }

MEMVAR _HMG_SYSDATA

declare window Main

Function main_form_onpaint

local  hDC
local BTstruct
local cAux := ""
local aAux := {}
local BT_hBitmapStatusBar := BT_BitmapLoadFile ( "msg_bar.bmp" )
local i := 0
local nCol := 0
local nRow := 0
local nWidth := 0
local nHeight := 0

BT_hBitmap := BT_BitmapLoadFile ( cPathAux + "\logo_gnnpx_hmg.png" )
hDC := BT_CreateDC ( "Main", BT_HDC_INVALIDCLIENTAREA , @BTstruct )
BT_DrawGradientFillVertical( hDC,;
                             0,0,;
                             BT_ClientAreaWidth( "Main" ),;
                             BT_ClientAreaHeight( "Main" ),;
                             CORTOYA, CORTOYA )
BT_DrawBitmapAlphaBlend( hDC, 756, 8, 320, 240, 255, BT_COPY, BT_hBitmap )

nCol := 0
nRow := BT_ClientAreaHeight( "Main" ) - BT_StatusBarHeight ( "Main" )
nWidth := BT_StatusBarWidth ( "Main" )
nHeight := BT_StatusBarHeight ( "Main" )

//--- StatusBar (1) -> não aparece, prevalece a StatusBar normal
BT_DrawBitmapAlphaBlend( hDC, nRow, nCol, nWidth, nHeight, 255, BT_STRETCH, BT_hBitmapStatusBar )

//--- StatusBar (2) -> gerei mais acima para certificar que a linha de comando está correta
BT_DrawBitmapAlphaBlend( hDC, nRow - nHeight, nCol, nWidth, nHeight, 255, BT_STRETCH, BT_hBitmapStatusBar )

BT_DeleteDC( BTstruct ) 

return Nil
Anexos
imagem-h06.png
Elcio Carlos
(toya)
Ahora en la version 6.5
toyasis@gmail.com (e-mail)
toyaskype (skype)
http://www.toyanet.com.br
https://www.facebook.com/profile.php?id=100009195956044

FWH 11.8+PellesC+xHarbour.org 1.2.1+SqlRDD
Clippeiro por opção, Fivewiner por amor ao Clipper...
2015 - Iniciante/Aprendiz de HMG...
Claudio Soto
Colaborador
Colaborador
Mensagens: 566
Registrado em: 27 Ago 2012 12:31
Localização: Uruguay
Contato:

StatusBar

Mensagem por Claudio Soto »

toya escreveu:ok...

Determinadas a coordenadas corretamente...
O problema é que não está sobrepondo quando executo:
BT_DrawBitmapAlphaBlend( hDC, nRow, nCol, nWidth, nHeight, 255, BT_STRETCH, BT_hBitmapStatusBar )
El problema es que el evento On Paint() siempre se ejecuta antes de que se dibujen los controles.
Hace tiempo que estoy pensando en crear un evento ON PostPaint(), es muy sencillo de implementarlo (ya lo anoté en mi lista de temas pendientes), sería muy útil en creación de splash window con controles (ej. ProgressBar).
Saludos.
Dr. Claudio Soto
(Uruguay)
http://srvet.blogspot.com
Responder