Quantcast
Channel: VBForums - Visual Basic 6 and Earlier
Viewing all articles
Browse latest Browse all 21088

How to move Form using Title bar without interrupting Processing

$
0
0
I'm working on a real-time application that accepts incoming sound data and plays it back async. This app is in a constant loop reading in the sound data and playing it back using Winsock to receive the data from the server. The problem is if a user mouse down on the title bar and moves the Form the playback is interrupted until user releases the mouse. After user releases the mouse the playback continues but it is now out of sync with the sending of the sound data.

I think that if I subclass the app and capture the mouse down on the title bar I can still allow the user to move his Form without interrupting the playback and getting out of sync.

Here is my subclassing code. All I need are the steps to allow Form movement and not interrupt processing

Form Code


Code:

  '
  '
Private Sub cmdStartSubclassing_Click()
 MainOldWindPoc = SetWindowLong(Me.hwnd, GWL_WNDPROC, AddressOf MainWndProc)
End Sub

Private Sub cmdStopSubclassing_Click()
 SetWindowLong Me.hwnd, GWL_WNDPROC, MainOldWindPoc
End Sub
  '
  '


Module Code

Code:

Option Explicit

Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
 (ByVal hwnd As Long, _
  ByVal nIndex As Long, _
  ByVal dwNewLong As Long) As Long

Public Const WM_SYSCOMMAND As Long = &H112

Public MainOldWindPoc As Long

Public defWndProc As Long

Public Const GWL_WNDPROC& = (-4)

Public Function MainWndProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
 Dim handled As Long
 
 handled = False
   
 Select Case uMsg
  Case WM_SYSCOMMAND
    '
    ' Don't know what to do here
    '
    handled = False
 End Select
   
 If Not handled Then
  MainWndProc = CallWindowProc(MainOldWindPoc, hwnd, uMsg, wParam, lParam)
 End If
End Function


Viewing all articles
Browse latest Browse all 21088

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>