I'm wondering whether anyone have any code sample that shows how to create a very long dialogue box which is scrollable and was created using a resource editor?
TIA
// Testing how to scroll a dialog with its contents
#include "FiveWin.ch"
#define D_WIDTH 4
#define D_HEIGHT 13
FUNCTION Main()
LOCAL oDlg
DEFINE DIALOG oDlg RESOURCE "dlgComScroll" ;
TITLE "Scroll dialog" ;
STYLE nOR( WS_VSCROLL, WS_HSCROLL )
ACTIVATE DIALOG oDlg ;
ON INIT ( TScrDlg():New(oDlg,1,65,1,70), oDlg:SetSize( 560, 550 ) )
RETURN( NIL )
//============================================================================
// FileName : SCROLL.PRG
// Purpose : dialog Scroll Class
// Author : Eric Yang
// Update History :
// Date Contents
// ---------- ---------------------------------------------------------------
// 1997.02.01
// 2006.29.12 By Rossini - Brasil
//============================================================================
#include "FiveWin.ch"
#ifndef TRUE
#define TRUE .T.
#define FALSE .F.
#endif
CLASS TScrDlg
DATA oDlg
DATA nVPos, nHPos
METHOD New( oDlg,nV1,nV2,nH1,nH2 ) CONSTRUCTOR
METHOD SetScroll( nV1,nV2,nH1,nH2 )
//-*------------------------------------------------------------
METHOD VScroll()
METHOD VScrollThumb()
METHOD VScrollTrack()
METHOD VScrollPgDown()
METHOD VScrollPgUp()
//-*-----------------------------
METHOD HScroll()
METHOD HScrollThumb()
METHOD HScrollTrack()
METHOD HScrollPgDown()
METHOD HScrollPgUp()
ENDCLASS
METHOD New( oDlg,nV1,nV2,nH1,nH2 ) CLASS TScrDlg
::nVPos := 0
::nHPos := 0
::oDlg := oDlg
::SetScroll( nV1,nV2,nH1,nH2 )
RETURN Self
METHOD SetScroll( nV1,nV2,nH1,nH2 ) CLASS TScrDlg
LOCAL aCoors1:={},aCoors2:={}
//--------------------------------------------------
//-* Vertical Scroll Bar
if ::oDlg:oVScroll != NIL
::oDlg:oVScroll:SetRange( nV1,nV2 )
::nVPos := ::oDlg:oVScroll:GetPos()
::oDlg:oVScroll:bGoDown := {|| ::VScroll() }
::oDlg:oVScroll:bGoUp := {|| ::VScroll() }
::oDlg:oVScroll:bPageUp := {|| ::VScrollPgUp() }
::oDlg:oVScroll:bPageDown := {|| ::VScrollPgDown() }
::oDlg:oVScroll:bGoTop := {|| ::VScroll() }
::oDlg:oVScroll:bGoBottom := {|| ::VScroll() }
::oDlg:oVScroll:nPgStep := 10
//::oDlg:oVScroll:lReDraw := TRUE
::oDlg:oVScroll:bPos := {|nPos| ::VScrollThumb(nPos) }
::oDlg:oVScroll:bTrack := {|nPos| ::VScrollTrack(nPos) }
endif
//--------------------------------------------------
//-* Horizontal Scroll Bar
if ::oDlg:oHScroll != NIL
::oDlg:oHScroll:SetRange( nH1,nH2 )
::nHPos := ::oDlg:oHScroll:GetPos()
::oDlg:oHScroll:bGoDown := {|| ::HScroll() }
::oDlg:oHScroll:bGoUp := {|| ::HScroll() }
::oDlg:oHScroll:bPageUp := {|| ::HScrollPgUp() }
::oDlg:oHScroll:bPageDown := {|| ::HScrollPgDown() }
::oDlg:oHScroll:bGoTop := {|| ::HScroll() }
::oDlg:oHScroll:bGoBottom := {|| ::HScroll() }
::oDlg:oHScroll:nPgStep := 10
//::oDlg:oHScroll:lReDraw := TRUE
::oDlg:oHScroll:bPos := {|nPos| ::HScrollThumb(nPos) }
::oDlg:oHScroll:bTrack := {|nPos| ::HScrollTrack(nPos) }
endif
* ::oDlg:bKeyChar := {|nKey,nFlags| ScrollKey(nKey) }
//--------------------------------------------------
RETURN( NIL )
/*
STATIC FUNCTION ScrollKey(nKey)
MsgInfo( "Key : "+str(nKey,10) )
//if nKey == K_ENTER
// goMainDlg:End()
// lRetVal := TRUE
//endif
RETURN( NIL )
*/
//=================================================================
//-* Vertical Scroll Bar
METHOD VScroll() CLASS TScrDlg
LOCAL nNewPos
if ::nVPos >= ::oDlg:oVScroll:nMin ;
.and. ::nVPos <= ::oDlg:oVScroll:nMax
nNewPos := ::oDlg:oVScroll:GetPos()
SysRefresh()
ScrollWindow( ::oDlg:hWnd, 0, ;
( ::nVPos-nNewPos )*D_HEIGHT, ;
0 , GetClientRect(::oDlg:hWnd) )
::nVPos := nNewPos
endif
RETURN( NIL )
METHOD VScrollThumb(nNewPos) CLASS TScrDlg
if ::nVPos >= ::oDlg:oVScroll:nMin ;
.and. ::nVPos <= ::oDlg:oVScroll:nMax
::oDlg:oVScroll:SetPos(nNewPos)
SysRefresh()
ScrollWindow( ::oDlg:hWnd, 0, ;
(::nVPos - nNewPos )*D_HEIGHT, ;
0 , GetClientRect(::oDlg:hWnd) )
::nVPos := nNewPos
endif
RETURN( NIL )
METHOD VScrollTrack(nNewPos) CLASS TScrDlg
if ::nVPos >= ::oDlg:oVScroll:nMin ;
.and. ::nVPos <= ::oDlg:oVScroll:nMax
::oDlg:oVScroll:SetPos(nNewPos)
SysRefresh()
ScrollWindow( ::oDlg:hWnd, 0, ;
(::nVPos - nNewPos )*D_HEIGHT, ;
0 , GetClientRect(::oDlg:hWnd) )
::nVPos := nNewPos
endif
RETURN( NIL )
METHOD VScrollPgDown() CLASS TScrDlg
LOCAL nNewPos
if ::nVPos < ::oDlg:oVScroll:nMax
nNewPos := ::nVPos + ::oDlg:oVScroll:nPgStep
nNewPos := iif(nNewPos > ::oDlg:oVScroll:nMax, ::oDlg:oVScroll:nMax, nNewPos)
SysRefresh()
ScrollWindow( ::oDlg:hWnd, 0, ;
( ::nVPos - nNewPos )*D_HEIGHT, ;
0 , GetClientRect(::oDlg:hWnd) )
::nVPos := nNewPos
endif
RETURN( NIL )
METHOD VScrollPgUp() CLASS TScrDlg
LOCAL nNewPos
if ::nVPos > ::oDlg:oVScroll:nMin
nNewPos := ::nVPos - ::oDlg:oVScroll:nPgStep
nNewPos := iif(nNewPos < ::oDlg:oVScroll:nMin,::oDlg:oVScroll:nMin,nNewPos)
SysRefresh()
ScrollWindow( ::oDlg:hWnd, 0, ;
( ::nVPos - nNewPos )*D_HEIGHT, ;
0 , GetClientRect(::oDlg:hWnd) )
::nVPos := nNewPos
endif
RETURN( NIL )
//=================================================================
//-* Horizontal Scroll Bar
METHOD HScroll() CLASS TScrDlg
LOCAL nNewPos
if ::nHPos >= ::oDlg:oHScroll:nMin ;
.and. ::nHPos <= ::oDlg:oHScroll:nMax
nNewPos := ::oDlg:oHScroll:GetPos()
SysRefresh()
ScrollWindow( ::oDlg:hWnd, ;
(::nHPos - nNewPos )*D_WIDTH,0, ;
0 , GetClientRect(::oDlg:hWnd) )
::nHPos := nNewPos
endif
RETURN( NIL )
METHOD HScrollThumb(nNewPos) CLASS TScrDlg
if ::nHPos >= ::oDlg:oHScroll:nMin ;
.and. ::nHPos <= ::oDlg:oHScroll:nMax
::oDlg:oHScroll:SetPos(nNewPos)
SysRefresh()
ScrollWindow( ::oDlg:hWnd, ;
(::nHPos - nNewPos )*D_WIDTH,0, ;
0 , GetClientRect(::oDlg:hWnd) )
::nHPos := nNewPos
endif
RETURN( NIL )
METHOD HScrollTrack(nNewPos) CLASS TScrDlg
if ::nHPos >= ::oDlg:oHScroll:nMin ;
.and. ::nHPos <= ::oDlg:oHScroll:nMax
::oDlg:oHScroll:SetPos(nNewPos)
SysRefresh()
ScrollWindow( ::oDlg:hWnd, ;
(::nHPos - nNewPos )*D_WIDTH,0, ;
0 , GetClientRect(::oDlg:hWnd) )
::nHPos := nNewPos
endif
RETURN( NIL )
METHOD HScrollPgDown() CLASS TScrDlg
LOCAL nNewPos
if ::nHPos < ::oDlg:oHScroll:nMax
nNewPos := ::nHPos + ::oDlg:oHScroll:nPgStep
nNewPos := iif(nNewPos > ::oDlg:oHScroll:nMax, ::oDlg:oHScroll:nMax, nNewPos)
SysRefresh()
ScrollWindow( ::oDlg:hWnd, ;
( ::nHPos - nNewPos )*D_WIDTH,0, ;
0 , GetClientRect(::oDlg:hWnd) )
::nHPos := nNewPos
endif
RETURN( NIL )
METHOD HScrollPgUp() CLASS TScrDlg
LOCAL nNewPos
if ::nHPos > ::oDlg:oHScroll:nMin
nNewPos := ::nHPos - ::oDlg:oHScroll:nPgStep
nNewPos := iif(nNewPos < ::oDlg:oHScroll:nMin,::oDlg:oHScroll:nMin,nNewPos)
SysRefresh()
ScrollWindow( ::oDlg:hWnd, ;
( ::nHPos - nNewPos )*D_WIDTH,0, ;
0 , GetClientRect(::oDlg:hWnd) )
::nHPos := nNewPos
endif
RETURN( NIL )
//=* End of File =================================================
//#include "wndscrol.c"
dlgComScroll DIALOG 50, 23, 365, 823
STYLE DS_MODALFRAME | 0x4L | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_VSCROLL | WS_HSCROLL | WS_SYSMENU
CAPTION "Ficha Cadastral"
FONT 7, "MS Sans Serif"
{
LTEXT "Dados Pessoais", -1, 4, 4, 348, 165, WS_BORDER | WS_GROUP
LTEXT "Dados do Conjuge", -1, 4, 171, 348, 89, WS_BORDER | WS_GROUP
LTEXT "Dados do Avalista", -1, 4, 263, 348, 113, WS_BORDER | WS_GROUP
LTEXT "Dados Profissionais do Financiado", 247, 4, 379, 348, 164, WS_BORDER | WS_GROUP
LTEXT "Referencias Pessoais e Bancarias", -1, 4, 546, 348, 87, WS_BORDER | WS_GROUP
LTEXT "Dados da Operação", 282, 4, 702, 348, 89, WS_BORDER | WS_GROUP
LTEXT "Veiculo", -1, 4, 635, 348, 64, WS_BORDER | WS_GROUP
CONTROL "101", 101, "EDIT", WS_BORDER | WS_TABSTOP, 10, 23, 196, 12
CONTROL "102", 102, "EDIT", WS_BORDER | WS_TABSTOP, 210, 23, 66, 12
CONTROL "103", 103, "EDIT", WS_BORDER | WS_TABSTOP, 280, 23, 66, 12
CONTROL "104", 104, "EDIT", WS_BORDER | WS_TABSTOP, 10, 49, 66, 12
CONTROL "105", 105, "EDIT", WS_BORDER | WS_TABSTOP, 81, 49, 66, 12
CONTROL "106", 106, "EDIT", WS_BORDER | WS_TABSTOP, 151, 49, 56, 12
CONTROL "107", 107, "EDIT", WS_BORDER | WS_TABSTOP, 210, 49, 66, 12
CHECKBOX "Fem", 108, 282, 48, 30, 12, BS_AUTOCHECKBOX | WS_TABSTOP
CHECKBOX "Mas", 109, 315, 48, 30, 12, BS_AUTOCHECKBOX | WS_TABSTOP
CONTROL "110", 110, "EDIT", WS_BORDER | WS_TABSTOP, 11, 75, 66, 12
CONTROL "111", 111, "EDIT", WS_BORDER | WS_TABSTOP, 81, 75, 126, 12
CONTROL "112", 112, "EDIT", WS_BORDER | WS_TABSTOP, 210, 75, 136, 12
CONTROL "113", 113, "EDIT", WS_BORDER | WS_TABSTOP, 11, 100, 241, 12
CONTROL "114", 114, "EDIT", WS_BORDER | WS_TABSTOP, 254, 100, 92, 12
CONTROL "115", 115, "EDIT", WS_BORDER | WS_TABSTOP, 11, 126, 184, 12
CONTROL "116", 116, "EDIT", WS_BORDER | WS_TABSTOP, 197, 126, 55, 12
CONTROL "117", 117, "EDIT", WS_BORDER | WS_TABSTOP, 254, 126, 92, 12
CONTROL "118", 118, "EDIT", WS_BORDER | WS_TABSTOP, 11, 151, 111, 12
CONTROL "119", 119, "EDIT", WS_BORDER | WS_TABSTOP, 125, 151, 113, 12
CONTROL "120", 120, "EDIT", WS_BORDER | WS_TABSTOP, 241, 151, 66, 12
CHECKBOX "Propria", 121, 309, 141, 39, 12, BS_AUTOCHECKBOX | WS_TABSTOP
CHECKBOX "Alugada", 122, 309, 152, 40, 12, BS_AUTOCHECKBOX | WS_TABSTOP
CONTROL "123", 123, "EDIT", WS_BORDER | WS_TABSTOP, 11, 192, 194, 12
CONTROL "124", 124, "EDIT", WS_BORDER | WS_TABSTOP, 208, 192, 138, 12
CONTROL "125", 125, "EDIT", WS_BORDER | WS_TABSTOP, 11, 217, 131, 12
CONTROL "126", 126, "EDIT", WS_BORDER | WS_TABSTOP, 145, 217, 101, 12
CONTROL "127", 127, "EDIT", WS_BORDER | WS_TABSTOP, 249, 217, 97, 12
CONTROL "128", 128, "EDIT", WS_BORDER | WS_TABSTOP, 11, 242, 184, 12
CONTROL "129", 129, "EDIT", WS_BORDER | WS_TABSTOP, 197, 242, 55, 12
CONTROL "130", 130, "EDIT", WS_BORDER | WS_TABSTOP, 254, 242, 92, 12
CONTROL "131", 131, "EDIT", WS_BORDER | WS_TABSTOP, 10, 282, 197, 12
CONTROL "132", 132, "EDIT", WS_BORDER | WS_TABSTOP, 210, 282, 66, 12
CONTROL "133", 133, "EDIT", WS_BORDER | WS_TABSTOP, 280, 282, 66, 12
CONTROL "134", 134, "EDIT", WS_BORDER | WS_TABSTOP, 11, 307, 173, 12
CONTROL "135", 135, "EDIT", WS_BORDER | WS_TABSTOP, 187, 307, 65, 12
CONTROL "136", 136, "EDIT", WS_BORDER | WS_TABSTOP, 254, 307, 92, 12
CONTROL "137", 137, "EDIT", WS_BORDER | WS_TABSTOP, 11, 332, 134, 12
CONTROL "138", 138, "EDIT", WS_BORDER | WS_TABSTOP, 148, 332, 36, 12
CONTROL "139", 139, "EDIT", WS_BORDER | WS_TABSTOP, 187, 332, 65, 12
CONTROL "140", 140, "EDIT", WS_BORDER | WS_TABSTOP, 254, 332, 92, 12
CONTROL "141", 141, "EDIT", WS_BORDER | WS_TABSTOP, 11, 358, 184, 12
CONTROL "142", 142, "EDIT", WS_BORDER | WS_TABSTOP, 197, 358, 55, 12
CONTROL "143", 143, "EDIT", WS_BORDER | WS_TABSTOP, 254, 358, 92, 12
CONTROL "144", 144, "EDIT", WS_BORDER | WS_TABSTOP, 11, 400, 194, 12
CONTROL "145", 145, "EDIT", WS_BORDER | WS_TABSTOP, 208, 400, 138, 12
CONTROL "146", 146, "EDIT", WS_BORDER | WS_TABSTOP, 11, 425, 112, 12
CONTROL "147", 147, "EDIT", WS_BORDER | WS_TABSTOP, 125, 425, 59, 12
CONTROL "148", 148, "EDIT", WS_BORDER | WS_TABSTOP, 187, 425, 65, 12
CONTROL "149", 149, "EDIT", WS_BORDER | WS_TABSTOP, 254, 425, 92, 12
CONTROL "150", 150, "EDIT", WS_BORDER | WS_TABSTOP, 11, 450, 241, 12
CONTROL "151", 151, "EDIT", WS_BORDER | WS_TABSTOP, 254, 450, 92, 12
CONTROL "152", 152, "EDIT", WS_BORDER | WS_TABSTOP, 11, 475, 184, 12
CONTROL "153", 153, "EDIT", WS_BORDER | WS_TABSTOP, 197, 475, 55, 12
CONTROL "154", 154, "EDIT", WS_BORDER | WS_TABSTOP, 254, 475, 92, 12
CONTROL "155", 155, "EDIT", WS_BORDER | WS_TABSTOP, 11, 500, 194, 12
CONTROL "156", 156, "EDIT", WS_BORDER | WS_TABSTOP, 208, 500, 138, 12
CONTROL "157", 157, "EDIT", WS_BORDER | WS_TABSTOP, 11, 525, 111, 12
CONTROL "158", 158, "EDIT", WS_BORDER | WS_TABSTOP, 125, 525, 113, 12
CHECKBOX "Residencial", 159, 289, 515, 54, 12, BS_AUTOCHECKBOX | WS_TABSTOP
CHECKBOX "Comercial", 160, 289, 526, 51, 12, BS_AUTOCHECKBOX | WS_TABSTOP
CONTROL "161", 161, "EDIT", WS_BORDER | WS_TABSTOP, 10, 565, 197, 12
CONTROL "162", 162, "EDIT", WS_BORDER | WS_TABSTOP, 210, 565, 66, 12
CONTROL "163", 163, "EDIT", WS_BORDER | WS_TABSTOP, 280, 565, 66, 12
CONTROL "164", 164, "EDIT", WS_BORDER | WS_TABSTOP, 10, 590, 241, 12
CONTROL "165", 165, "EDIT", WS_BORDER | WS_TABSTOP, 253, 590, 93, 12
CONTROL "166", 166, "EDIT", WS_BORDER | WS_TABSTOP, 11, 615, 112, 12
CONTROL "167", 167, "EDIT", WS_BORDER | WS_TABSTOP, 125, 615, 59, 12
CONTROL "168", 168, "EDIT", WS_BORDER | WS_TABSTOP, 187, 615, 65, 12
CONTROL "169", 169, "EDIT", WS_BORDER | WS_TABSTOP, 254, 615, 92, 12
CONTROL "170", 170, "EDIT", WS_BORDER | WS_TABSTOP, 10, 655, 96, 12
CONTROL "171", 171, "EDIT", WS_BORDER | WS_TABSTOP, 109, 655, 39, 12
CONTROL "172", 172, "EDIT", WS_BORDER | WS_TABSTOP, 151, 655, 56, 12
CONTROL "173", 173, "EDIT", WS_BORDER | WS_TABSTOP, 210, 655, 66, 12
CONTROL "174", 174, "EDIT", WS_BORDER | WS_TABSTOP, 279, 655, 68, 12
CONTROL "175", 175, "EDIT", WS_BORDER | WS_TABSTOP, 11, 681, 184, 12
CONTROL "176", 176, "EDIT", WS_BORDER | WS_TABSTOP, 197, 681, 55, 12
CONTROL "177", 177, "EDIT", WS_BORDER | WS_TABSTOP, 254, 681, 92, 12
CONTROL "178", 178, "EDIT", WS_BORDER | WS_TABSTOP, 11, 723, 131, 12
CONTROL "179", 179, "EDIT", WS_BORDER | WS_TABSTOP, 145, 723, 101, 12
CONTROL "180", 180, "EDIT", WS_BORDER | WS_TABSTOP, 249, 723, 97, 12
CONTROL "181", 181, "EDIT", WS_BORDER | WS_TABSTOP, 10, 748, 78, 12
CONTROL "182", 182, "EDIT", WS_BORDER | WS_TABSTOP, 90, 748, 53, 12
CONTROL "183", 183, "EDIT", WS_BORDER | WS_TABSTOP, 145, 748, 63, 12
CONTROL "184", 184, "EDIT", WS_BORDER | WS_TABSTOP, 210, 748, 66, 12
CONTROL "185", 185, "EDIT", WS_BORDER | WS_TABSTOP, 279, 748, 68, 12
CONTROL "186", 186, "EDIT", WS_BORDER | WS_TABSTOP, 10, 773, 158, 12
CONTROL "187", 187, "EDIT", WS_BORDER | WS_TABSTOP, 170, 773, 176, 12
LTEXT "Nome", -1, 9, 13, 197, 10
LTEXT "Data Nasc.", -1, 209, 13, 68, 9
LTEXT "Estado Civil", -1, 279, 13, 68, 10
LTEXT "CPF", -1, 9, 39, 68, 9
LTEXT "RG", -1, 80, 39, 68, 10
LTEXT "Orgao Expeditor", -1, 150, 39, 56, 9
LTEXT "Emissão", -1, 209, 39, 68, 10
LTEXT "_", -1, 279, 39, 68, 10
LTEXT "Naturalidade", -1, 10, 65, 45, 10
LTEXT "Pai", -1, 80, 65, 32, 10
LTEXT "Mae", -1, 209, 65, 32, 10
LTEXT "Endereco Residencial", -1, 10, 90, 78, 9
LTEXT "Bairro", -1, 253, 90, 32, 10
LTEXT "Cidade", -1, 10, 116, 32, 9
LTEXT "UF", -1, 196, 116, 32, 10
LTEXT "CEP", -1, 253, 116, 32, 10
LTEXT "Telefone", -1, 10, 141, 32, 10
LTEXT "Celular", -1, 124, 141, 32, 10
LTEXT "Tempo Resid.", -1, 240, 141, 49, 10
LTEXT "Nome", -1, 10, 182, 32, 10
LTEXT "CPF", -1, 207, 182, 32, 10
LTEXT "RG", -1, 10, 207, 32, 10
LTEXT "Emissao", -1, 144, 207, 32, 10
LTEXT "Data Nasc.", -1, 248, 207, 57, 10
LTEXT "Empresa onde trabalha", -1, 10, 232, 32, 9
LTEXT "Telefone", -1, 196, 232, 32, 10
LTEXT "Salario", -1, 253, 232, 32, 10
LTEXT "Nome", -1, 9, 272, 197, 10
LTEXT "Data Nasc.", -1, 209, 272, 68, 9
LTEXT "CPF", -1, 279, 272, 68, 10
LTEXT "Endereco", -1, 10, 297, 32, 9
LTEXT "Bairro", -1, 186, 297, 32, 10
LTEXT "Telefone", -1, 253, 297, 32, 10
LTEXT "Cidade", -1, 10, 322, 32, 9
LTEXT "CEP", -1, 186, 322, 32, 10
LTEXT "RG", -1, 253, 322, 32, 10
LTEXT "UF", -1, 147, 322, 32, 10
LTEXT "Empresa onde trabalha", -1, 10, 348, 32, 9
LTEXT "Telefone", -1, 196, 348, 32, 10
LTEXT "Renda avalista", -1, 253, 348, 55, 10
LTEXT "Empresa onde trabalha", -1, 10, 390, 32, 10
LTEXT "CNPJ", -1, 207, 390, 32, 10
LTEXT "Cargo", -1, 10, 415, 32, 9
LTEXT "Renda", -1, 186, 415, 32, 10
LTEXT "Telefone", -1, 253, 415, 32, 10
LTEXT "Admissão", -1, 124, 415, 32, 10
LTEXT "Endereco ", -1, 10, 440, 78, 9
LTEXT "Bairro", -1, 253, 440, 32, 10
LTEXT "Cidade", -1, 10, 465, 32, 9
LTEXT "UF", -1, 196, 465, 32, 10
LTEXT "CEP", -1, 253, 465, 32, 10
LTEXT "Empresa Anterior", -1, 10, 490, 71, 10
LTEXT "CNPJ", -1, 207, 490, 32, 10
LTEXT "Telefone", -1, 10, 515, 32, 10
LTEXT "Celular", -1, 124, 515, 32, 10
LTEXT "End.Cobrança", -1, 240, 515, 49, 10
LTEXT "Banco", -1, 9, 555, 197, 10
LTEXT "Agencia", -1, 209, 555, 68, 9
LTEXT "Conta Corrente", -1, 279, 555, 68, 10
LTEXT "Endereco ", -1, 9, 580, 78, 9
LTEXT "Telefone", -1, 252, 580, 32, 10
LTEXT "Nome(Pessoais)", -1, 10, 605, 64, 9
LTEXT "Comercial/Pessoal", -1, 186, 605, 66, 10
LTEXT "Telefone", -1, 253, 605, 32, 10
LTEXT "Telefone", -1, 124, 605, 32, 10
LTEXT "Marca", -1, 9, 645, 68, 9
LTEXT "Ano", -1, 109, 645, 24, 10
LTEXT "Modelo", -1, 150, 645, 56, 9
LTEXT "Placa", -1, 209, 645, 68, 10
LTEXT "Renavam", -1, 279, 645, 68, 10
LTEXT "Chassi", -1, 10, 671, 32, 9
LTEXT "Cor", -1, 196, 671, 32, 10
LTEXT "Combustivel", -1, 253, 671, 48, 10
LTEXT "Valor", -1, 10, 713, 32, 10
LTEXT "Entrada", -1, 144, 713, 32, 10
LTEXT "Valor do Credito Financiado", -1, 248, 713, 96, 10
LTEXT "Valor da TAC", -1, 9, 738, 68, 9
LTEXT "Tabela", -1, 90, 738, 24, 10
LTEXT "Coeficiente", -1, 144, 738, 56, 9
LTEXT "Prazo", -1, 209, 738, 68, 10
LTEXT "Carencia", -1, 279, 738, 68, 10
LTEXT "Valor da Parcela", -1, 9, 763, 71, 10
LTEXT "Primeiro Vencimento", -1, 169, 763, 73, 10
PUSHBUTTON "Confirma Operação", 88, 192, 796, 76, 14
PUSHBUTTON "Cancela Operação", 89, 270, 796, 82, 14
}
#include "FiveWin.ch"
#define D_WIDTH 4
#define D_HEIGHT 13
FUNCTION Main()
LOCAL oDlg, oScrDlg
DEFINE DIALOG oDlg RESOURCE "dlgComScroll" ;
TITLE "Scroll dialog" ;
STYLE nOR( WS_VSCROLL, WS_HSCROLL )
oDlg:bMouseWheel = { | nKey, nDelta, nXPos, nYPos | MouseWheel( nKey, nDelta, nXPos, nYPos, oScrDlg ) }
ACTIVATE DIALOG oDlg ;
ON INIT ( oScrDlg := TScrDlg():New( oDlg, 1, 65, 1, 70), oDlg:SetSize( 560, 550 ), oDlg:Center() )
RETURN( NIL )
function MouseWheel( nKey, nDelta, nXPos, nYPos, oScrDlg )
local oVScroll := oScrDlg:oDlg:oVScroll
if nDelta < 0
oVScroll:GoDown()
else
oVScroll:GoUp()
endif
oScrDlg:VScroll()
return nil
...
Return to FiveWin for Harbour/xHarbour
Users browsing this forum: EASYSOFT and 24 guests