WinBatch Tech Support Home

Database Search

If you can't find the information using the categories below, post a question over in our WinBatch Tech Support Forum.

TechHome

Samples

Can't find the information you are looking for here? Then leave a message over on our WinBatch Tech Support Forum.

Resize Dialog and Move Controls


AddExtender("wwctl44i.dll")
Home_Path = DirScript()
DirChange(Home_Path)
GoSub Load_Routines
IntControl(49,3,0,0,0)
Move_Sub_Init_Var_Rtn()
WinHide("")
x = 0
Init_Dialog_Constants()

WS_THICKFRAME=262144        ; Style adds sizing border.


MoveFormat=`WWWDLGED,6.1`

MoveCaption=`Button_Move`
MoveX=002
MoveY=038
MoveWidth=256
MoveHeight=127
MoveNumControls=002
MoveProcedure=`Move_Sub`
MoveFont=`DEFAULT`
MoveTextColor=`DEFAULT`
MoveBackground=`DEFAULT,DEFAULT`
MoveConfig=0

Move001=`089,107,036,012,PUSHBUTTON,DEFAULT,"OK",1,1,32,DEFAULT,DEFAULT,DEFAULT`
Move002=`151,107,036,012,PUSHBUTTON,DEFAULT,"Cancel",0,2,DEFAULT,DEFAULT,DEFAULT,DEFAULT`

ButtonPushed=Dialog("Move")
Exit


:Load_Routines


#DefineSubRoutine Move_Sub_Init_Var_Rtn()

  pb_Mov_OK                            = 1
  pb_Mov_Cancel                        = 2


#EndSubRoutine

#DefineSubRoutine Init_Dialog_Constants()

   ;DialogprocOptions Constants

   MSG_INIT               = 0    ; The one-time initilization
   MSG_TIMER              = 1    ; Timer event
   MSG_BUTTONPUSHED       = 2    ; Pushbutton or Picturebutton
   MSG_RADIOPUSHED        = 3    ; Radiobutton clicked
   MSG_CHECKBOX           = 4    ; Checkbox clicked
   MSG_EDITBOX            = 5    ; Editbox or Multilinebox
   MSG_FILESELECT         = 6    ; Filelistbox
   MSG_ITEMSELECT         = 7    ; Itembox
   MSG_COMBOCHANGE        = 8    ; Combobox/Droplistbox
   MSG_CALENDAR           = 9    ; Calendar date change
   MSG_SPINNER            = 10   ; Spinner number change
   MSG_CLOSEVIA49         = 11   ; Close clicked (Enabled via Intcontrol 49)
   MSG_FILEBOXDOUBLECLICK = 12   ; Get double-click message on a FileListBox
   MSG_ITEMBOXDOUBLECLICK = 13   ; Get double-click message on an ItemBox
   MSG_COMEVENT           = 14   ; Get double-click message on an ItemBox

   DPO_DISABLESTATE       = 1000 ; codes -1=GetSetting 0=EnableDialog 1=DisableDialog
   DPO_CHANGEBACKGROUND   = 1001 ; -1=GetSetting otherise bitmap or color string
   DPO_CHANGESYSMENU      = 1002 ; -1=Get Current 0=none 1=close 2=close/min 3=close/max 4=close/min/max
   DPO_CHANGETITLE        = 1003 ; -1=Get Current otherise new title

   ;DialogControlState Constants
   DCSTATE_SETFOCUS       = 1    ; Give Control Focus
   DCSTATE_QUERYSTYLE     = 2    ; Query control's style
   DCSTATE_ADDSTYLE       = 3    ; Add control style
   DCSTATE_REMOVESTYLE    = 4    ; Remove control style
   DCSTATE_GETFOCUS       = 5    ; Get control that has focus
   DCSTYLE_INVISIBLE      = 1    ; Set Control Invisible
   DCSTYLE_DISABLED       = 2    ; Set Control Disabled
   DCSTYLE_NOUSERDATA     = 4    ; Note: Setable via DialogControlState function ONLY SPINNER control only
   DCSTYLE_READONLY       = 8    ; Sets control to read-only (user cannot type in data) EDITBOX MULTILINEBOX SPINNER
   DCSTYLE_PASSWORD       = 16   ; Sets 'password mode' where only *'s are displayed EDITBOX
   DCSTYLE_DEFAULTBUTTON  = 32   ; Sets a button as a the default button PUSHBUTTON PICTUREBUTTON
   DCSTYLE_DIGITSONLY     = 64   ; Set edit box to accept digits only EDITMOX MULTILINEBOX
   DCSTYLE_FLAT           = 128  ; Makes a 'flat' hyperlink-looking button PUSHBUTTON PICTUREBUTTON
   DCSTYLE_HEIGHT         = 256  ; Turns off automatic height adjustment on ItemBoxes and FileListBoxes
   DCSTYLE_CENTER         = 512  ; Center Text in VARYTEXT and STATICTEXT Controls
   DCSTYLE_RIGHT          = 1024 ; Right Justify Text in VARYTEXT and STATICTEXT Controls
   DCSTYLE_NOSELCURLEFT   = 2048 ; No selection, cursor left EDITBOX MULTILINEBOX
   DCSTYLE_NOSELCURRIGHT  = 4096 ; No selection, cursor right EDITBOX MULTILINEBOX

   ;DialogControlSet / DialogControlGet Constants
   DC_CHECKBOX            = 1    ; CHECKBOX
   DC_RADIOBUTTON         = 2    ; RADIOBUTTON
   DC_EDITBOX             = 3    ; EDITBOX MULTILINEBOX
   DC_TITLE               = 4    ; PICTURE RADIOBUTTON CHECKBOX PICTUREBUTTON VARYTEXT STATICTEXT GROUPBOX PUSHBUTTON
   DC_ITEMBOXCONTENTS     = 5    ; ITEMBOX FILELISTBOX DROPLISTBOX
   DC_ITEMBOXSELECT       = 6    ; ITEMBOX FILELISTBOX DROPLISTBOX
   DC_CALENDAR            = 7    ; CALENDAR
   DC_SPINNER             = 8    ; SPINNER
   DC_MULTITABSTOPS       = 9    ; MULTILINEBOX
   DC_ITEMSCROLLPOS       = 10   ; ITEMBOX FILELISTBOX
   DC_BACKGROUNDCOLOR     = 11   ; RADIOBUTTON CHECKBOX VARYTEXT STATICTEXT GROUPBOX PUSHBUTTON ITEMBOX FILELISTBOX DROPLISTBOX SPINNER EDITBOX MULTILINEBOX
   DC_PICTUREBITMAP       = 12   ; PICTURE PICTUREBUTTON
   DC_TEXTCOLOR           = 13   ; RADIOBUTTON CHECKBOX VARYTEXT STATICTEXT GROUPBOX PUSHBUTTON ITEMBOX FIELLISTBOX DROPLISTBOX SPINNER EDITBOX MULTILINEBOX
   DC_ITEMBOXADD          = 14   ; ITEMBOX FILELISTBOX DROPLISTBOX
   DC_ITEMBOXREMOVE       = 15   ; ITEMBOX FILELISTBOX DROPLISTBOX
   DC_RADIOCONTROL        = 16   ; RADIOBUTTON

   ;DialogObject constants

   DLGOBJECT_ADDEVENT     = 1    ; Call dialog callback when the specified event occurs
   DLGOBJECT_REMOVEEVENT  = 2    ; Stop calling dialog callback when an event previously requested with
   DLGOBJECT_GETOBJECT    = 3    ; Return an object references to the specified control
   DLGOBJECT_GETPICOBJECT = 4    ; Create and return an object reference to a picture object

   ;Return code constants
   RET_DO_CANCEL          =  0   ; Cancels dialog
   RET_DO_DEFAULT         = -1   ; Continue with default processing for control
   RET_DO_NOT_EXIT        = -2   ; Do not exit the dialog

#EndSubRoutine

;; Returns a window's styles
;;;;;;;;;;;;;;;;;;;;;;;;;;;
#DefineFunction GetStyle(hWnd)
  user32 = StrCat(DirWindows(1),"user32.dll")
  GWL_STYLE = -16 ; offset for the Window Style value
  ret = DllCall(user32,long:"GetWindowLongA",long:hWnd,long:GWL_STYLE)
  Return ret
#EndFunction

;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Sets a window's styles
;;;;;;;;;;;;;;;;;;;;;;;;;;;
#DefineFunction SetStyle(hWnd, nstyle)
  user32 = StrCat(DirWindows(1),"user32.dll")
  GWL_STYLE = -16 ; offset for the Window Style value
  ret = DllCall(user32,long:"SetWindowLongA",long:hWnd,long:GWL_STYLE,long:nstyle)
  Return ret
#EndFunction


#DefineSubRoutine Move_Sub_SysID_List_Rtn()

  si_pb_Mov_OK                                  = 100
  si_pb_Mov_Cancel                              = 101

  window1=cWndByWndSpec("wb0wcdl3","WinBatch",2,100,101)
  wid_OK = cWinIDConvert(cWndbyid(window1,si_pb_Mov_OK))
  wid_Cancel = cWinIDConvert(cWndbyid(window1,si_pb_Mov_Cancel))

#EndSubRoutine


#DefineSubRoutine Move_Sub(Mov_Handle,DMsg,DCID,resvd4,resvd5)

Switch (DMsg)
    Case msg_init                 ; Dialog Initialization
    DialogProcOptions(Mov_Handle, msg_timer,1000)                            ; TimerEvent (0- Off).
    DialogProcOptions(Mov_Handle, msg_closevia49,1)                      ; Close selected (IntControl(49....) (1-On, 0-Off).
    DialogProcOptions(Mov_Handle, dpo_disablestate,0)                     ; Dialog Disable (1-Disable, 2-Wait cursor, 0-Enable).
    DialogProcOptions(Mov_Handle, dpo_changebackground,-1)                ; Change Dialog Background (Bitmap File or RGB String).
    DialogProcOptions(Mov_Handle, msg_buttonpushed,1)                     ; PushButton/PictureButton.
    DialogProcOptions(Mov_Handle, msg_itemselect,1)                       ; ItemBox.
    DialogProcOptions(Mov_Handle, msg_itemboxdoubleclick,1)               ; ItemBox Double-Clicked.
    Move_Sub_SysID_List_Rtn()
    my_list = ""
    my_list_list = ""

    ; Add a "sizable" boarder.
    nStyle = GetStyle(Mov_Handle)
    nStyle = nStyle | WS_THICKFRAME
    SetStyle(Mov_Handle,nStyle)

    wpos = WinPosition("Button_Move")
    wadj = WinMetrics(-6)
    hadj = WinMetrics(-5)
    dwidth = ItemExtract(3,wpos,",")-ItemExtract(1,wpos,",")
    dheight= ItemExtract(4,wpos,",")-ItemExtract(2,wpos,",")
    dwidth = (ItemExtract(3,wpos,",")/wadj)-(ItemExtract(1,wpos,",")/wadj)
    dheight= (ItemExtract(4,wpos,",")/hadj)-(ItemExtract(2,wpos,",")/hadj)

    w_save = dwidth
    h_save = dheight
    Break
  Case msg_timer                ; TimerEvent
;Message("HI",WinPosition("Move"))

    wpos = WinPosition("Button_Move")
    dwidth = (ItemExtract(3,wpos,",")/wadj)-(ItemExtract(1,wpos,",")/wadj)
    dheight= (ItemExtract(4,wpos,",")/hadj)-(ItemExtract(2,wpos,",")/hadj)
;   DialogProcOptions(Mov_Handle, 1003, StrCat("Button_Move - %dwidth% x %dheight%  ", dwidth/2-70,"  ",dheight-20,"  ",dwidth/2-45,"  ",dheight-4,"  ",WinMetrics(-6), "    ",WinMetrics(-5)))


    If w_save != dwidth || h_save != dheight Then
      WinPlace(dwidth*wadj/2-100,(dheight*hadj)-80,@NORESIZE, @NORESIZE,wid_OK)
      WinPlace(dwidth*wadj/2+15, (dheight*hadj)-80,@NORESIZE, @NORESIZE,wid_Cancel)
      w_save = dwidth
      h_save = dheight
    EndIf

    Break
  Case msg_closevia49           ; Close
    Exit
    Break
  Case msg_itemboxdoubleclick   ; ItemBox DC
    Switch(DCID)
      Case ib_Mov_my_list
        my_list = DialogControlGet(Mov_Handle,ib_Mov_my_list,dc_itemboxselect)
        my_list_list = DialogControlGet(Mov_Handle,ib_Mov_my_list,dc_itemboxcontents)
        Break
    EndSwitch
    Break
  Case msg_itemselect           ; Item Box
    Switch(DCID)
      Case ib_Mov_my_list
        my_list = DialogControlGet(Mov_Handle,ib_Mov_my_list,dc_itemboxselect)
        my_list_list = DialogControlGet(Mov_Handle,ib_Mov_my_list,dc_itemboxcontents)
        Break
    EndSwitch
    Break
  Case msg_buttonpushed         ; PushButtion
    Switch(DCID)
      Case pb_Mov_OK
        nSelection = DialogControlGet(Mov_Handle,pb_Mov_OK,dc_title)

        Break
      Case pb_Mov_Cancel
        nSelection = DialogControlGet(Mov_Handle,pb_Mov_Cancel,dc_title)
        Exit
        Break
    EndSwitch
    Break
EndSwitch
Return -2

#EndSubRoutine


Return

Article ID:   W16947
File Created: 2007:07:03:14:27:08
Last Updated: 2007:07:03:14:27:08