Can't find the information you are looking for here? Then leave a message over on our WinBatch Tech Support Forum.
Keywords: Size Resize Resizable AskItemList UDF Dialog
; Resizeable Askitemlist with prelect option #DefineSubRoutine AskItemCallbackProc(AskItem_Handle,AskItem_Message,AskItem_Name,AskItem_EventInfo,AskItem_ChangeInfo) ON_EQUAL = @TRUE Switch AskItem_Message Case 0; MSG_INIT DialogProcOptions(AskItem_Handle,2,@TRUE) ;--MSG_BUTTONPUSHED DialogProcOptions(AskItem_Handle,17,@TRUE) ;--MSG_DIALOGERESIZE ; preselect an item DialogControlSet(AskItem_Handle, "ItemList", 6, preselect) ; Save values for use when calculating button positions. nDlgWidth = AskItemWidth nOkMidOff = ItemExtract(1, DialogControlGet(AskItem_Handle, "PushButton_OK", 17 ), " ") - (nDlgWidth/2) nCanMidOff = ItemExtract(1, DialogControlGet(AskItem_Handle, "PushButton_Cancel", 17 ), " ") - (nDlgWidth/2) nItemMidOff = ItemExtract(1, DialogControlGet(AskItem_Handle, "ItemList", 17 ), " ") - (nDlgWidth/2) Return(-1) Case 2 ; MSG_BUTTONPUSHED Switch ON_EQUAL Case AskItem_Name == "PushButton_OK" ; OK Return(-1) Case AskItem_Name == "PushButton_Cancel" ; Cancel Return(0) EndSwitch Return(-1) Case 17 ;MSG_RESIZE ; Get the dialog's size deltas. nDeltaX = ItemExtract(1,AskItem_ChangeInfo, " ") nDeltaY = ItemExtract(2,AskItem_ChangeInfo, " ") nDlgWidth = nDlgWidth + nDeltaX ; The itembox just changes size with the dialog. strRect = DialogControlGet(AskItem_Handle, "ItemList", 17 ) nWidth = ItemExtract(3, strRect, " ") nHeight = ItemExtract(4, strRect, " ") strRect = ItemReplace(nWidth+nDeltaX, 3, strRect, " ") strRect = ItemReplace(nHeight+nDeltaY, 4, strRect, " ") DialogControlSet(AskItem_Handle, "ItemList", 17, strRect ) ; Buttons strRect = DialogControlGet(AskItem_Handle, "PushButton_OK", 17 ) nY = ItemExtract(2, strRect, " ") strRect = ItemReplace(nDlgWidth/2+nOkMidOff , 1, strRect, " ") strRect = ItemReplace(nY+nDeltaY, 2, strRect, " ") DialogControlSet(AskItem_Handle, "PushButton_OK", 17, strRect ) strRect = DialogControlGet(AskItem_Handle, "PushButton_Cancel", 17 ) nY = ItemExtract(2, strRect, " ") strRect = ItemReplace(nDlgWidth/2+nCanMidOff, 1, strRect, " ") strRect = ItemReplace(nY+nDeltaY, 2, strRect, " ") DialogControlSet(AskItem_Handle, "PushButton_Cancel", 17, strRect ) EndSwitch Return(-1) #EndSubRoutine ItemList = 'apples':@TAB:'bananas':@TAB:'cherries' preselect = 'bananas' AskItemFormat=`WWWDLGED,6.2` AskItemCaption=`DlgAskItemList` AskItemX=-01 AskItemY=-01 AskItemWidth=176 AskItemHeight=146 AskItemMinWidth=053 AskItemMinHeight=044 AskItemNumControls=003 AskItemProcedure=`AskItemCallbackProc` AskItemFont=`DEFAULT` AskItemTextColor=`DEFAULT` AskItemBackground=`DEFAULT,DEFAULT` AskItemConfig=3 AskItem001=`041,123,036,012,PUSHBUTTON,"PushButton_OK",DEFAULT,"OK",2,10,32,DEFAULT,DEFAULT,DEFAULT` AskItem002=`087,123,036,012,PUSHBUTTON,"PushButton_Cancel",DEFAULT,"Cancel",1,20,DEFAULT,DEFAULT,DEFAULT,DEFAULT` AskItem003=`009,005,154,114,ITEMBOX,"ItemList",ItemList,DEFAULT,DEFAULT,30,256,DEFAULT,DEFAULT,DEFAULT` AskItemButtonPushed=Dialog("AskItem") ; WinBatch will not display this dialog. Pause('Result', ItemList)
Article ID: W17758
Filename: Resizable AskItemList Box.txt
File Created: 2011:05:23:11:13:16
Last Updated: 2011:05:23:11:13:16