Can't find the information you are looking for here? Then leave a message over on our WinBatch Tech Support Forum.
However, maybe you could create a control for each of the font types (Regular, Bold and Italic) you would like displayed, then use the DialogControlState Invisible style on each control then remove that style to display that control to the user...
Sample code that uses invisible controls:
;============================================================ ;============================================================ ;============================================================ #DefineFunction MyDialogCallbackProc(MyDialog_Handle,MyDialog_Message,MyDialog_ID,rsvd1,rsvd2) ;DialogprocOptions Constants MSG_INIT=0 ; The one-time initialization 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 DPO_DISABLESTATE=1000 ; codes -1=GetSetting 0=EnableDialog 1=DisableDialog DPO_CHANGEBACKGROUND=1001 ; -1=GetSetting otherise bitmap or color string ;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 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_NOADJUST=256 ; Turns off auto-height adjustment ITEMBOX FILELISTBOX DCSTYLE_TEXTCENTER=512 ; Center text in control VARYTEXT STATICTEXT DCSTYLE_TEXTRIGHT=1024 ; Flush-Right text in control VARYTEXT STATICTEXT ;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 switch MyDialog_Message case MSG_INIT ;DialogProcOptions(MyDialog_Handle,MSG_TIMER,1000) DialogProcOptions(MyDialog_Handle,MSG_BUTTONPUSHED,@TRUE) DialogProcOptions(MyDialog_Handle,MSG_RADIOPUSHED,@TRUE) return(-1) case MSG_BUTTONPUSHED switch MyDialog_ID case 001 return(-1) case 002 return(-1) endswitch ;MyDialog_ID return(-1) ; Do default processing case MSG_RADIOPUSHED switch MyDialog_ID case 006 ;Regular ;Make all invisible if !DialogControlState(MyDialog_Handle,003,2,1) then DialogControlState(MyDialog_Handle,003,3,1) if !DialogControlState(MyDialog_Handle,004,2,1) then DialogControlState(MyDialog_Handle,004,3,1) if !DialogControlState(MyDialog_Handle,005,2,1) then DialogControlState(MyDialog_Handle,005,3,1) ;Make regular visible DialogControlState(MyDialog_Handle,003,4,1) return(-1) case 007 ;Italic ;Make all invisible if !DialogControlState(MyDialog_Handle,003,2,1) then DialogControlState(MyDialog_Handle,003,3,1) if !DialogControlState(MyDialog_Handle,004,2,1) then DialogControlState(MyDialog_Handle,004,3,1) if !DialogControlState(MyDialog_Handle,005,2,1) then DialogControlState(MyDialog_Handle,005,3,1) ;Make Italic visible DialogControlState(MyDialog_Handle,004,4,1) return(-1) case 008 ;Bold ;Make all invisible if !DialogControlState(MyDialog_Handle,003,2,1) then DialogControlState(MyDialog_Handle,003,3,1) if !DialogControlState(MyDialog_Handle,004,2,1) then DialogControlState(MyDialog_Handle,004,3,1) if !DialogControlState(MyDialog_Handle,005,2,1) then DialogControlState(MyDialog_Handle,005,3,1) ;Make Bold visible DialogControlState(MyDialog_Handle,005,4,1) return(-1) endswitch ;MyDialog_ID return(-1) ; Do default processing endswitch ; MyDialog_Message return(-1) ; Do default processing #EndFunction ;End of Dialog Callback MyDialogCallbackProc ;============================================================ ;============================================================ ;============================================================ MyDialogFormat=`WWWDLGED,6.1` MyDialogCaption=`WIL Dialog 1` MyDialogX=002 MyDialogY=053 MyDialogWidth=187 MyDialogHeight=124 MyDialogNumControls=008 MyDialogProcedure=`MyDialogCallbackProc` MyDialogFont=`DEFAULT` MyDialogTextColor=`DEFAULT` MyDialogBackground=`DEFAULT,DEFAULT` MyDialogConfig=0 MyDialog001=`017,087,033,011,PUSHBUTTON,DEFAULT,"OK",1,1,32,DEFAULT,DEFAULT,DEFAULT` MyDialog002=`074,087,034,011,PUSHBUTTON,DEFAULT,"Cancel",0,2,DEFAULT,DEFAULT,DEFAULT,DEFAULT` MyDialog003=`065,031,075,021,STATICTEXT,DEFAULT,"Text",DEFAULT,3,0,"Microsoft Sans Serif|11059|40|34","0|0|0",DEFAULT` MyDialog004=`066,033,070,017,STATICTEXT,DEFAULT,"Text",DEFAULT,3,1,"Microsoft Sans Serif|11059|140|34","0|0|0",DEFAULT` MyDialog005=`065,031,075,021,STATICTEXT,DEFAULT,"Text",DEFAULT,3,1,"Microsoft Sans Serif|11059|70|34","0|0|0",DEFAULT` MyDialog006=`014,025,071,011,RADIOBUTTON,MyRadioVar,"Regular",1,6,DEFAULT,DEFAULT,DEFAULT,DEFAULT` MyDialog007=`014,038,041,010,RADIOBUTTON,MyRadioVar,"Italic",2,7,DEFAULT,DEFAULT,DEFAULT,DEFAULT` MyDialog008=`014,050,041,011,RADIOBUTTON,MyRadioVar,"Bold",3,8,DEFAULT,DEFAULT,DEFAULT,DEFAULT` ButtonPushed=Dialog("MyDialog")
Here is a link to a tech article about creating and setting fonts using the Windows API and dllcall: http://techsupt.winbatch.com/webcgi/webbatch.exe?techsupt/nftechsupt.web+WinBatch/Boxes~Functions+Using~Other~Fonts~in~Boxes.txt
This example is for the advanced user and uses boxes instead of a dialog but the principle is the same.
Note: WB dialog push buttons are a highly customized versions of a standard Windows button. They simple ignore the WM_SETFONT message. Most of the other dialog controls will accept the message and dutifully change their font.
Use this ability with extreme caution. Some WB dialog controls use their initial font size to determine their overall size and changing font size can make a mess of the rendering process. This is the primary reason that font changes were not added to the dialogs. I think that there is some possibility that we may be able to add it to a future version (with some restrictions.) I will see that it is added to the list of suggested enhancements.
Article ID: W16405
File Created: 2014:07:18:09:50:36
Last Updated: 2014:07:18:09:50:36