VaryText in Picture

Started by golijoe, February 03, 2014, 09:15:09 AM

Previous topic - Next topic

golijoe

 ???
I am creating a dialog with a picture and arrows pointing to different diameters so when the user enters a value the calculation shows up in a variable text box in the picture. Is this possible or do I have to use an edit box. There will be about 10 different places where this will happen in the dialog. Version 2013B

Deana

I am not sure I understand what your asking for? Are you trying to dynamically write text on a picture control in a WIL dialog? If so I am not sure this can be accomplished by layering the controls.
Deana F.
Technical Support
Wilson WindowWare Inc.

golijoe

Here is an image of what I am trying to do. The edit box works but in some cases I will have to have 2 whereas with the vary text I can stack the information in 1 box. The red circles is where information would be displayed.

Deana

I suppose if the graphic you posted is used as the background image of the dialog you could use vary text controls to display your values.

For example:
Code (winbatch) Select

vtVariable1 = "1.0000"
vtVariable2 = "2.0000"
vtVariable3 = "3.0000"
vtVariable4 = "4.0000"

MyDialogFormat=`WWWDLGED,6.2`

MyDialogCaption=`WIL Dialog 1`
MyDialogX=002
MyDialogY=059
MyDialogWidth=766
MyDialogHeight=353
MyDialogNumControls=006
MyDialogProcedure=`DEFAULT`
MyDialogFont=`DEFAULT`
MyDialogTextColor=`DEFAULT`
MyDialogBackground=`"C:\Users\Deana\Pictures\background.bmp",DEFAULT`
MyDialogConfig=0

MyDialog001=`231,333,036,012,PUSHBUTTON,"PushButton_OK",DEFAULT,"OK",1,10,32,DEFAULT,DEFAULT,DEFAULT`
MyDialog002=`499,333,036,012,PUSHBUTTON,"PushButton_Cancel",DEFAULT,"Cancel",0,20,DEFAULT,DEFAULT,DEFAULT,DEFAULT`
MyDialog003=`081,099,060,012,VARYTEXT,"VaryText_1",vtVariable1,"Vary 1",DEFAULT,30,512,"Microsoft Sans Serif|8192|70|34","255|255|0",DEFAULT`
MyDialog004=`217,133,044,012,VARYTEXT,"VaryText_2",vtVariable2,"Vary 2",DEFAULT,40,512,"Microsoft Sans Serif|8192|70|34","255|255|0",DEFAULT`
MyDialog005=`099,231,044,012,VARYTEXT,"VaryText_3",vtVariable3,"Vary 3",DEFAULT,50,512,"Microsoft Sans Serif|8192|70|34","255|255|0",DEFAULT`
MyDialog006=`283,203,044,012,VARYTEXT,"VaryText_4",vtVariable4,"Vary 4",DEFAULT,60,512,"Microsoft Sans Serif|8192|70|34","255|255|0",DEFAULT`

ButtonPushed=Dialog("MyDialog")
Deana F.
Technical Support
Wilson WindowWare Inc.

golijoe

I was using picture in the dialog.

Code (winbatch) Select
MyDialogFormat=`WWWDLGED,6.2`

MyDialogCaption=`NCS Thread Data`
MyDialogX=-01
MyDialogY=-01
MyDialogWidth=522
MyDialogHeight=309
MyDialogNumControls=014
MyDialogProcedure=`MyDialogCallbackProc`
MyDialogFont=`DEFAULT`
MyDialogTextColor=`DEFAULT`
MyDialogBackground=`DEFAULT,0|0|0`
MyDialogConfig=0

MyDialog001=`007,111,036,012,PUSHBUTTON,"PushButton_OK",DEFAULT,"Print",1,10,32,DEFAULT,DEFAULT,DEFAULT`
MyDialog002=`007,287,036,012,PUSHBUTTON,"PushButton_Cancel",DEFAULT,"Exit",0,20,DEFAULT,DEFAULT,DEFAULT,DEFAULT`
MyDialog003=`009,015,036,012,EDITBOX,"EditBox_1",ebVariable1,DEFAULT,DEFAULT,1,2048,"Microsoft Sans Serif|8192|70|34","0|0|255",DEFAULT`
MyDialog004=`075,017,220,284,PICTURE,"Picture_1",DEFAULT,"Picture 1",DEFAULT,50,DEFAULT,DEFAULT,DEFAULT,"\\S-YT-AD\Data2\Quotes\NCS Oilfield Services\Thread Data\Data\OD.bmp"`
MyDialog005=`077,001,218,012,STATICTEXT,"StaticText_1",DEFAULT,"OD Measure Over Wires",DEFAULT,60,512,"Microsoft Sans Serif|8192|70|34","255|255|0",DEFAULT`
MyDialog006=`297,017,220,284,PICTURE,"Picture_2",DEFAULT,"Picture 1",DEFAULT,50,DEFAULT,DEFAULT,DEFAULT,"\\S-YT-AD\Data2\Quotes\NCS Oilfield Services\Thread Data\Data\ID.bmp"`
MyDialog007=`297,001,218,012,STATICTEXT,"StaticText_3",DEFAULT,"ID Gage Maker Contact Points",DEFAULT,60,512,"Microsoft Sans Serif|8192|70|34","255|255|0",DEFAULT`
MyDialog008=`003,043,060,012,RADIOBUTTON,"RadioButton1",rbVariable,"6  Stub Acme",1,2,DEFAULT,"Microsoft Sans Serif|7680|70|34","255|255|255",DEFAULT`
MyDialog009=`003,063,060,012,RADIOBUTTON,"RadioButton2",rbVariable,"8  Stub Acme",2,3,DEFAULT,"Microsoft Sans Serif|7680|70|34","255|255|255",DEFAULT`
MyDialog010=`003,083,062,012,RADIOBUTTON,"RadioButton3",rbVariable,"10 Stub Acme",3,100,DEFAULT,"Microsoft Sans Serif|7680|70|34","255|255|255",DEFAULT`
MyDialog011=`001,031,068,074,GROUPBOX,"GroupBox_1",DEFAULT,"Select Pitch",DEFAULT,110,DEFAULT,"Microsoft Sans Serif|7680|70|34","0|0|0",DEFAULT`
MyDialog012=`093,137,040,014,EDITBOX,"EditBox_2",ebVariable1,"15.0000",DEFAULT,150,2048,"Microsoft Sans Serif|8192|70|34","255|255|0","128|128|128"`
MyDialog013=`093,149,040,012,EDITBOX,"EditBox_3",ebVariable3,DEFAULT,DEFAULT,140,DEFAULT,"Microsoft Sans Serif|8192|70|34","255|255|0","128|128|128"`

ButtonPushed=Dialog("MyDialog")

Deana

Unfortunately you are not going to be able to accomplish this by layering the controls (Editbox or VaryText)
Deana F.
Technical Support
Wilson WindowWare Inc.

golijoe

The edit box works. I just use the same background color so unleess there is information in it you don't see it.

Deana

Quote from: golijoe on February 03, 2014, 12:28:09 PM
The edit box works. I just use the same background color so unleess there is information in it you don't see it.

Are you sure, it works. Post a screen shot of an Editbox containing text that is overlaying a picture control.
Deana F.
Technical Support
Wilson WindowWare Inc.

JTaylor

Probably works with the right Tab order.  At least that has been my experience with controls sitting on top of each other.   Can get a little flaky though with COM controls trying to do such a thing.


Jim

td

Quote from: golijoe on February 03, 2014, 12:28:09 PM
The edit box works. I just use the same background color so unleess there is information in it you don't see it.

I can't see why a VARYTEXT control wouldn't work for multiple lines, if an edit box already works for single lines.  A MULTILINEBOX would work as well but the MULTILINEBOX has scroll bars that could show up and ruin the effect, if you were not careful with text size. 

Which ever you choose, remember that you should use both a carriage return and a line feed (@CRLF) at the end of a line to get a line break in MULTILINEBOX boxes.  Either a @CR or a @LF will work to cause line breaks in a VARYTEXT control.
"No one who sees a peregrine falcon fly can ever forget the beauty and thrill of that flight."
  - Dr. Tom Cade

golijoe

Here is a screenshot of how it looks. There are 2 separate pictures used in the dialog. Like I said the vary text won't work from what I have tried but the edit box works. I just have to use 2 when I have a tolerance to deal with.

JTaylor

Sorry if I missed this but when you say it "won't work", what do you mean?  You can't see the text boxes or it doesn't display properly, etc.

Jim

td

Quote from: golijoe on February 04, 2014, 06:34:58 AM
Here is a screenshot of how it looks. There are 2 separate pictures used in the dialog. Like I said the vary text won't work from what I have tried but the edit box works. I just have to use 2 when I have a tolerance to deal with.

My error.  The edit box works because you can give it the input focus but the VARYTEXT control cannot receive the input focus so it will never draw on top of the bitmap.

When I get a chance I will look into this a little more and see if I can come up with a workaround of some kind.  In the mean time you might consider putting your bitmaps together and using the combined image as your dialogs background. 
"No one who sees a peregrine falcon fly can ever forget the beauty and thrill of that flight."
  - Dr. Tom Cade

td

Here is a quick and dirty dialog callback procedure that changes the extended styles of your PICTURE control and two VARYTEXT controls that would replace the edit controls in the dialog template your posted above.
Code (winbatch) Select

InitDialogConstants()                                       ; Initialize Dialog Constants (need only be done once usually)

#DefineSubroutine MyDialogCallbackProc(MyDialog_Handle,MyDialog_Message,MyDialog_Name,MyDialog_EventInfo,MyDialog_ChangeInfo)
   ON_EQUAL = @TRUE                                         ; Initialize variable ON_EQUAL
   switch MyDialog_Message                                  ; Switch based on Dialog Message type
      case MSG_INIT
         GWL_EXSTYLE       = -20
         WS_EX_TRANSPARENT = 32
         hUser32 = DllLoad(DirWindows(1):"User32.dll")
         
         ; Remove style from picture control 1
         hControl = DialogControlGet(MyDialog_Handle,"Picture_1", DC_HANDLE)
         CtrlStyle = DllCall(hUser32, long:"GetWindowLongA", long:hControl, long:GWL_EXSTYLE)
         ;;;[correction: changed the 'CtrlStyle|' to 'CtrlStyle&']
         DllCall(hUser32, long:"SetWindowLongA", long:hControl, long:GWL_EXSTYLE, long:CtrlStyle&(~WS_EX_TRANSPARENT))
         
         ; Remove style from picture control 2
         hControl = DialogControlGet(MyDialog_Handle,"Picture_2", DC_HANDLE)
         CtrlStyle = DllCall(hUser32, long:"GetWindowLongA", long:hControl, long:GWL_EXSTYLE)
         ;;;[correction: changed the 'CtrlStyle|' to 'CtrlStyle&']
         DllCall(hUser32, long:"SetWindowLongA", long:hControl, long:GWL_EXSTYLE, long:CtrlStyle&(~WS_EX_TRANSPARENT))
         
         ; Add style to varytext control 1.
         hControl = DialogControlGet(MyDialog_Handle,"VaryText_1", DC_HANDLE)
         CtrlStyle = DllCall(hUser32, long:"GetWindowLongA", long:hControl, long:GWL_EXSTYLE)
         DllCall(hUser32, long:"SetWindowLongA", long:hControl, long:GWL_EXSTYLE, long:CtrlStyle|WS_EX_TRANSPARENT)

         ; Add style to varytext control 2.
         hControl = DialogControlGet(MyDialog_Handle,"VaryText_2", DC_HANDLE)
         CtrlStyle = DllCall(hUser32, long:"GetWindowLongA", long:hControl, long:GWL_EXSTYLE)
         DllCall(hUser32, long:"SetWindowLongA", long:hControl, long:GWL_EXSTYLE, long:CtrlStyle|WS_EX_TRANSPARENT)
         DllFree(hUser32)

   endswitch                                                ; MyDialog_Message
   return(RET_DO_DEFAULT)
#EndSubroutine                                              ; End of Dialog Callback MyDialogCallbackProc


The WS_EX_TRANSPARENT extended windows style forces the control to be drawn after its sibling controls. So what the callback does is removes the style from the PICTURE controls and adds it to the VARYTEXT controls.  This should force the VARYTEXT controls to be display on top of the PICTURE controls.   

If you need help using the callback to test this idea, post your questions here and I am sure someone will be glad to help.
"No one who sees a peregrine falcon fly can ever forget the beauty and thrill of that flight."
  - Dr. Tom Cade

golijoe

Thanks that code will help but as putting both images together I started to but it was easier at the beginning to just make 2 separate. Did not foresee the problems down the road but Iââ,¬â,,¢m almost finished with it. I get to work on it a few minutes a day so I have to come each time and try to remember were I left off. Thanks again!

....IFICantBYTE

Hi,
another way around this, that I've used a few times in my dialogs, is to use a Picture Button control for the pictures... and here is the trick to make it work the way you want:
In the dialog editor, give the Picture Button(s) both the FLAT and DISABLED styles and make sure their TAB ORDER has a LESSER value than the controls you want to be over the top.
In the dialog editor it will look the opposite of that, but when the dialog is run, the other controls will be above the picture button.
The final piece of this trick is to make a NEGATIVE of your source picture file... this is usually very easy in an image editor.. there is usually an effect called Negative or invert colors or something.
The reason to make a negative is that the "disabled" picture button would normally display the picture as a negative anyway, and doing this makes it display it normally again, all the while keeping it disabled (non-clickable) and flat (no border) and having the other controls drawn above it.

Try it out.. it works.
 
Regards,
....IFICantBYTE

Nothing sucks more than that moment during an argument when you realize you're wrong. :)

td

Quote from: golijoe on February 04, 2014, 02:37:25 PM
Thanks that code will help but as putting both images together I started to but it was easier at the beginning to just make 2 separate. Did not foresee the problems down the road but Iââ,¬â,,¢m almost finished with it. I get to work on it a few minutes a day so I have to come each time and try to remember were I left off. Thanks again!

Here's your script with a callback (and different bitmaps.)
Code (winbatch) Select

#DefineSubRoutine InitDialogConstants()
   ;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 DialogProcOptions 1002
   MSG_FILEBOXDOUBLECLICK=12     ; Get double-click message on a FileListBox
   MSG_ITEMBOXDOUBLECLICK=13     ; Get double-click message on an ItemBox
   MSG_COMEVENT=14               ; COMCONTROL Event notification from DialogObject (NOT DialogProcOptions)
   MSG_MENUITEM=15               ; MenuItem selected
   MSG_MENUITEMINIT=16           ; MenuItem initialized
   MSG_RESIZE=17                 ; Dialog resized
   MSG_RVITEMSELROW=18           ; Reportview item select row
   MSG_RVDBLCLICKROW=19          ; Reportview double-click row
   MSG_RVCHECKEDITEM=20          ; Reportview checked/unchecked Item
   MSG_RVITEMTEXT=21             ; Reportview changed text of first column
   MSG_RVHEADER=22               ; Reportview header clicked

   DPO_DISABLESTATE=1000         ; codes -1=GetSetting 0=EnableDialog 1=DisableDialog
   DPO_CHANGEBACKGROUND=1001     ; -1=Get Current 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          ; Set/Get Dialog Title - (-1 to get)
   DPO_GETNAME=1004              ; Returns the name associated with a control's number.
   DPO_GETNUMBER=1005            ; Returns the number associated with a control's name.
   DPO_GETCLIENTAREA=1007        ; Returns a space delimited list of the width and height of the client area.

   ;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
   DCSTATE_MOVEMOUSEOVER=6       ; Move the mouse over the control

   DCSTYLE_DEFAULT=0             ; Set Default Style
   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
   DCSTYLE_NOSELCURLEFT=2048     ; No selection, cursor left EDITBOX MULTILINEBOX
   DCSTYLE_NOSELCURRIGHT=4096    ; No selection, cursor right EDITBOX MULTILINEBOX
   DCSTYLE_SHIELD=8192           ; Display Security Shield icon on button (Vista only) PUSHBUTTON PICTUREBUTTON
   DCSTYLE_MENUCHECK=32768       ; Adds a check mark to the left of a menu item MENUITEM
   DCSTYLE_MENURADIO=65536       ; Adds a radio button like dot graphic to the left of a menu item MENUITEM
   DCSTYLE_MENUSEP=131072        ; Separator bar graphic MENUITEM
   DCSTYLE_MENUBREAK=262144      ; Column break MENUBAR
   DCSTYLE_NOHEADER=524288       ; No header bar REPORTVIEW
   DCSTYLE_COLHEADER=1048576     ; First row column header REPORTVIEW
   DCSTYLE_GRIDLINES=2097152     ; Grid lines REPORTVIEW
   DCSTYLE_SELONEROW=4194304     ; Only one row can be selected at a time REPORTVIEW
   DCSTYLE_SELALLROW = 8388608   ; Highlight complete row REPORTVIEW
   DCSTYLE_SORTASC=16777216      ; Ascending sort REPORTVIEW
   DCSTYLE_SORTDESC=33554432     ; Descending sort REPORTVIEW
   DCSTYLE_EDITCOL=67108864      ; Edit first columns text REPORTVIEW
   DCSTYLE_COLCHECKBOX=134217728 ; Add checkbox to first column REPORTVIEW
   DCSTYLE_INSHEADER=268435456   ; Include column header text REPORTVIEW

   ;DialogControlSet / DialogControlGet Constants
   DC_CHECKBOX=1             ; CHECKBOX REPORTVIEW
   DC_RADIOBUTTON=2          ; RADIOBUTTON
   DC_EDITBOX=3              ; EDITBOX MULTILINEBOX
   DC_TITLE=4                ; PICTURE RADIOBUTTON CHECKBOX PICTUREBUTTON VARYTEXT STATICTEXT GROUPBOX PUSHBUTTON MENUITEM
   DC_ITEMBOXCONTENTS=5      ; ITEMBOX FILELISTBOX DROPLISTBOX REPORTVIEW
   DC_ITEMBOXSELECT=6        ; ITEMBOX FILELISTBOX DROPLISTBOX REPORTVIEW
   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 REPORTVIEW
   DC_PICTUREBITMAP=12       ; PICTURE PICTUREBUTTON
   DC_TEXTCOLOR=13           ; RADIOBUTTON CHECKBOX VARYTEXT STATICTEXT GROUPBOX PUSHBUTTON ITEMBOX FILELISTBOX DROPLISTBOX SPINNER EDITBOX MULTILINEBOX REPORTVIEW
   DC_ITEMBOXADD=14          ; ITEMBOX FILELISTBOX DROPLISTBOX REPORTVIEW
   DC_ITEMBOXREMOVE=15       ; ITEMBOX FILELISTBOX DROPLISTBOX REPORTVIEW
   DC_RADIOVALUE=16          ; RADIOBUTTON
   DC_POSITION=17            ; ALL CONTROLS (Except MENUBAR and MENUITEM)
   DC_MENUNAMES=18           ; ALL CONTROLS
   DC_HANDLE=19              ; ALL CONTROLS (Except MENUBAR and MENUITEM)
   DC_RVCOLHEAD=20           ; REPORTVIEW
   DC_RVCOLWIDTH=21          ; REPORTVIEW
   DC_RVADDCOL=22            ; REPORTVIEW
   DC_RVREMOVECOL=23         ; REPORTVIEW
   DC_RVMATCHCOL=24          ; REPORTVIEW
   DC_RVCANCELEDIT=25        ; REPORTVIEW
   DC_RVCHECKEDROWS=26       ; REPORTVIEW
   DC_RVJUSTIFY=27           ; REPORTVIEW


   ;DialogObject constants
   DLGOBJECT_ADDEVENT=1      ; Call dialog callback when the specified event occurs
   DLGOBJECT_STOPEVENT=2     ; Stop calling dialog callback when an event previously requested with
   DLGOBJECT_GETOBJECT=3     ; Return an object references to the specified control
   DLGOBJECT_GETPICTURE=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
   return
#EndSubroutine

InitDialogConstants()                                       ; Initialize Dialog Constants (need only be done once usually)

#DefineSubroutine MyDialogCallbackProc(MyDialog_Handle,MyDialog_Message,MyDialog_Name,MyDialog_EventInfo,MyDialog_ChangeInfo)
   ON_EQUAL = @TRUE                                         ; Initialize variable ON_EQUAL
   switch MyDialog_Message                                  ; Switch based on Dialog Message type
      case MSG_INIT
         GWL_EXSTYLE       = -20
         WS_EX_TRANSPARENT = 32
         hUser32 = DllLoad("User32.dll")
         
         ; Remove style from picture control 1
         hControl = DialogControlGet(MyDialog_Handle,"Picture_1", DC_HANDLE)
         CtrlStyle = DllCall(hUser32, long:"GetWindowLongA", long:hControl, long:GWL_EXSTYLE)
         DllCall(hUser32, long:"SetWindowLongA", long:hControl, long:GWL_EXSTYLE, long:CtrlStyle&(~WS_EX_TRANSPARENT))
         
         ; Remove style from picture control 2
         hControl = DialogControlGet(MyDialog_Handle,"Picture_2", DC_HANDLE)
         CtrlStyle = DllCall(hUser32, long:"GetWindowLongA", long:hControl, long:GWL_EXSTYLE)
         DllCall(hUser32, long:"SetWindowLongA", long:hControl, long:GWL_EXSTYLE, long:CtrlStyle&(~WS_EX_TRANSPARENT))
         
         ; Add style to varytext control 1.
         hControl = DialogControlGet(MyDialog_Handle,"VaryText_1", DC_HANDLE)
         CtrlStyle = DllCall(hUser32, long:"GetWindowLongA", long:hControl, long:GWL_EXSTYLE)
         DllCall(hUser32, long:"SetWindowLongA", long:hControl, long:GWL_EXSTYLE, long:CtrlStyle|WS_EX_TRANSPARENT)

         ; Add style to varytext control 2.
         hControl = DialogControlGet(MyDialog_Handle,"VaryText_2", DC_HANDLE)
         CtrlStyle = DllCall(hUser32, long:"GetWindowLongA", long:hControl, long:GWL_EXSTYLE)
         DllCall(hUser32, long:"SetWindowLongA", long:hControl, long:GWL_EXSTYLE, long:CtrlStyle|WS_EX_TRANSPARENT)
         DllFree(hUser32)

   endswitch                                                ; MyDialog_Message
   return(RET_DO_DEFAULT)
#EndSubroutine                                              ; End of Dialog Callback MyDialogCallbackProc

MyDialogFormat=`WWWDLGED,6.2`

MyDialogCaption=`NCS Thread Data`
MyDialogX=-01
MyDialogY=-01
MyDialogWidth=521
MyDialogHeight=309
MyDialogNumControls=013
MyDialogProcedure=`MyDialogCallbackProc`
MyDialogFont=`DEFAULT`
MyDialogTextColor=`DEFAULT`
MyDialogBackground=`DEFAULT,0|0|0`
MyDialogConfig=0

MyDialog001=`007,111,035,011,PUSHBUTTON,"PushButton_OK",DEFAULT,"Print",1,500,32,DEFAULT,DEFAULT,DEFAULT`
MyDialog002=`007,287,035,011,PUSHBUTTON,"PushButton_Cancel",DEFAULT,"Exit",0,600,DEFAULT,DEFAULT,DEFAULT,DEFAULT`
MyDialog003=`009,015,035,011,EDITBOX,"EditBox_1",ebVariable1,DEFAULT,DEFAULT,100,2048,"Microsoft Sans Serif|8192|70|34","0|0|255",DEFAULT`
MyDialog004=`076,017,219,283,PICTURE,"Picture_1",DEFAULT,"Picture 1",DEFAULT,700,DEFAULT,DEFAULT,DEFAULT,"c:\temp\12flagNeedle.bmp"`
MyDialog005=`078,001,217,011,STATICTEXT,"StaticText_1",DEFAULT,"OD Measure Over Wires",DEFAULT,900,512,"Microsoft Sans Serif|8192|70|34","255|255|0",DEFAULT`
MyDialog006=`295,017,219,283,PICTURE,"Picture_2",DEFAULT,"Picture 1",DEFAULT,800,DEFAULT,DEFAULT,DEFAULT,"c:\temp\12flagNeedle.bmp"`
MyDialog007=`297,001,214,011,STATICTEXT,"StaticText_3",DEFAULT,"ID Gage Maker Contact Points",DEFAULT,1000,512,"Microsoft Sans Serif|8192|70|34","255|255|0",DEFAULT`
MyDialog008=`004,044,059,011,RADIOBUTTON,"RadioButton1",rbVariable,"6  Stub Acme",1,200,DEFAULT,"Microsoft Sans Serif|7680|70|34","255|255|255",DEFAULT`
MyDialog009=`004,063,059,011,RADIOBUTTON,"RadioButton2",rbVariable,"8  Stub Acme",2,300,DEFAULT,"Microsoft Sans Serif|7680|70|34","255|255|255",DEFAULT`
MyDialog010=`004,084,062,011,RADIOBUTTON,"RadioButton3",rbVariable,"10 Stub Acme",3,400,DEFAULT,"Microsoft Sans Serif|7680|70|34","255|255|255",DEFAULT`
MyDialog011=`001,031,067,072,GROUPBOX,"GroupBox_1",DEFAULT,"Select Pitch",DEFAULT,110,DEFAULT,"Microsoft Sans Serif|7680|70|34","0|0|0",DEFAULT`
MyDialog012=`095,174,075,033,VARYTEXT,"VaryText_1",scVariable1,"Centurylink%@lf%Field",DEFAULT,2000,2560,"Microsoft Sans Serif|8192|70|34","0|0|0","255|255|255"`
MyDialog013=`430,028,038,019,VARYTEXT,"VaryText_2",scbVariable3,"Space%@lf%Needle",DEFAULT,1000,2560,"Microsoft Sans Serif|8192|70|34","255|255|255","0|0|0"`

ButtonPushed=Dialog("MyDialog")


And the result
"No one who sees a peregrine falcon fly can ever forget the beauty and thrill of that flight."
  - Dr. Tom Cade