Maintain Selection on TextBox (Hide When Lost Focus)

Category: Controls - Edit Controls

Date: 03-28-2012

Return to Index


 
'Compilable Example:
#Compiler PBWin 9, PBWin 10
#Compile EXE
#Dim All
#Include "Win32API.inc"
Global hDlg As Dword, hTextBox As Dword, OldProc&
%ID_TextBox = 500
%ID_Button  = 501
 
Function PBMain() As Long
   Dialog New Pixels, 0, "Test Code",300,300,200,200, %WS_OverlappedWindow To hDlg
   Control Add TextBox, hDlg, %ID_TextBox, "Right-mouse click me!", 20,10,120,20
   Control Add Button, hDlg, %ID_Button, "Push", 20,40,100,25
   Dialog Show Modal hDlg Call DlgProc
End Function
 
CallBack Function DlgProc() As Long
   Select Case Cb.Msg
      Case %WM_InitDialog
         Control Post hDlg, %ID_TextBox, %EM_SetSel, 0, 5    'starting selection
         OldProc& = SetWindowLong(GetDlgItem(hDlg, %ID_TextBox), %GWL_WndProc, CodePtr(NewProc))  'subclass
      Case %WM_Destroy
         SetWindowLong hTextBox, %GWL_WNDPROC, OldProc&   'un-subclass
   End Select
End Function
 
Function NewProc(ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As LongAs Long
   Local iReturn As Long
   Select Case Msg
      Case %WM_GETDLGCODE
         If lParam = %NULL Then
            iReturn = CallWindowProc(OldProc&, hWnd, MsgwParamlParam)
            Function = iReturn Xor %DlgC_HasSetSel
            Exit Function
         End If
   End Select
   Function = CallWindowProc(OldProc&, hWnd, MsgwParamlParam)
End Function
 
'gbs_00896
'Date: 03-10-2012


created by gbSnippets
http://www.garybeene.com/sw/gbsnippets.htm