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