I see there is EM_SETSEL in Win32 API but it is not implemented in WinGui.bi , It would need the start & end first.
In My App I can print the contents to console of the lower Editor_New with the Build Button without selecting.
The copy button is for the lower editor, it works if manual selecting first. (I have to put text there manually for test)
Sub BuildPtrTabl will put text result in lower Editor when I have it coded
Code: Select all
'-------------------------------------------------
' StringTableconv.bas V1.0
' Tool for String Table --> String pointer Table
' Created on 2021-03-17 ToniG
' Last Update 2021- -
'-------------------------------------------------
#Include "WinGUI.bi"
Dim As HWND Window_Main, Editor1, Editor2, Btn_Build, Btn_Copy, Btn_Paste, Btn_Clear, Edit_Font
Dim As HFONT hFont
Dim As MSG msg
Dim As Long x0, y0, W1, H1, Rpos
Dim As String Text1
Declare Sub BuildPtrTabl (Editor2 As HWND)
W1 = 1000 ' Window Width
H1 = 700 ' Window Height
Rpos = 200 ' Right ref
Text1 = "Input: String Table Paste ClipBoard (only ""string"" lines will be processed, other lines ignored)"
' " _" line continuation wont work!!
'Create a window with text editors and a button:
' X Y W H
Window_Main = Window_New (100, 100, W1, H1, "Create String Pointer Table")
' "' Paste Table here..." + Chr(13) + Chr(10) Just for ref. editBox
Editor1 = Editor_New (20, 40, 800, 350, "",, Window_Main)
Editor2 = Editor_New (20, 410, 800, 200, "",, Window_Main)
Var Label_txt1 = Label_New (30, 20, 750, 20, Text1,, Window_Main)
Var Label_txt2 = Label_New (30, 390, 150, 20, "Output: Pointer Table",, Window_Main)
Btn_Paste = Button_New (W1-180, 40, 100, 40, "Paste",, Window_Main)
Btn_Clear = Button_New (W1-180, 100, 100, 40, "Clear",, Window_Main)
Btn_Build = Button_New (W1-180, 320, 100, 40, "Build",, Window_Main)
Btn_Copy = Button_New (W1-180, 550, 100, 40, "Copy",, Window_Main)
' ^ Window resize event overides on form open
' Fonts
'hFont = Control_Createfont("Courier New",,, FW_THIN)
hFont = Control_Createfont("Courier New",,, FW_BOLD) '< Create Font
Control_SetFont(Editor1), hFont '< Set Font
'------------------
'Event loop:
Do
WaitEvent(Window_Main, msg)
Select Case msg.hwnd
Case Btn_Paste
If msg.message = WM_LBUTTONUP Then
EditBox_Paste(Editor1)
End If
Case Btn_Clear
If msg.message = WM_LBUTTONUP Then
EditBox_Clear(Editor1) ' This only clears selected text
EditBox_SetText(Editor1,"")
End If
Case Btn_Build
If msg.message = WM_LBUTTONUP Then
BuildPtrTabl(Editor2)
End If
Case Btn_Copy
If msg.message = WM_LBUTTONUP Then
EditBox_Copy(Editor2)
End If
Case Else
'Resize Controls x if window size change
Window_GetSize(Window_Main, x0, y0, W1, H1)
Control_Resize(Editor1, 20, 40, W1-Rpos, 350)
Control_Resize(Editor2, 20, 410, W1-Rpos, 200)
Control_Resize(Btn_Paste, W1-(Rpos-40), 40, 100, 40)
Control_Resize(Btn_Clear, W1-(Rpos-40), 100, 100, 40)
Control_Resize(Btn_Build, W1-(Rpos-40), 320, 100, 40)
Control_Resize(Btn_Copy, W1-(Rpos-40), 550, 100, 40)
End Select
Loop Until Window_Event_Close(Window_Main, msg)
End
'Wait until window is closed:
Do
WaitEvent(Window_Main, msg)
Loop Until Window_Event_Close(Window_Main, msg)
'Delete font:
Control_DeleteFont(hFont)
End
Sub BuildPtrTabl (Editor2 As HWND)
'Just for test
Cls
Print EditBox_GetText(Editor2)
End Sub