
Code:
SELECT CASE CBMSG CASE %WM_LBUTTONDOWN SendMessage ghDlg, %WM_NCLBUTTONDOWN, %HTCAPTION, BYVAL %NULL END SELECT
Thanks!
William Fletcher
SELECT CASE CBMSG CASE %WM_LBUTTONDOWN SendMessage ghDlg, %WM_NCLBUTTONDOWN, %HTCAPTION, BYVAL %NULL END SELECT
#COMPILE EXE #INCLUDE "win32api.INC" GLOBAL oldproc AS LONG CALLBACK FUNCTION DlgProc IF CBMSG = %WM_COMMAND AND CBCTL = %IDOK THEN DIALOG END CBHNDL IF CBMSG = %WM_DESTROY THEN SetWindowLong CBHNDL, %GWL_WNDPROC, oldproc END FUNCTION CALLBACK FUNCTION subclass IF CBMSG = %WM_NCHITTEST THEN FUNCTION = %HTCAPTION ELSE FUNCTION = CallWindowProc(oldproc, CBHNDL, CBMSG, CBWPARAM, CBLPARAM) END IF END FUNCTION FUNCTION PBMAIN DIALOG NEW 0, "HTCAPTION test", , , 100, 200, %WS_BORDER TO hDlg& CONTROL ADD BUTTON, hDlg&, %IDOK, "&Quit", 30, 90, 40, 14 OldProc = SetWindowLong(hDlg&, %GWL_WNDPROC, CODEPTR(subclass)) DIALOG SHOW MODAL hDlg&, CALL DlgProc END FUNCTION
CALLBACK FUNCTION DlgProc () AS LONG SELECT CASE CBCTL CASE %ID_OK_BUTTON DIALOG END ghDlg, 1 END SELECT SELECT CASE CBMSG CASE %WM_CREATE CASE %WM_NCHITTEST FUNCTION = %HTCAPTION EXIT FUNCTION END SELECT END FUNCTION 'DlgProc
SELECT CASE lMsg CASE %WM_CREATE CASE %WM_NCHITTEST FUNCTION = %HTCAPTION EXIT FUNCTION <-- This is required so that execution does END SELECT not fall through to the default window procedure
CASE %WM_LBUTTONDOWN SendMessage hWnd, %WM_NCLBUTTONDOWN, %HTCAPTION, byval %NULL
GLOBAL ghDlg AS LONG '---------------------------------------------------- CALLBACK FUNCTION DlgProc () AS LONG SELECT CASE CBMSG ' CASE %WM_NCHITTEST ' FUNCTION = %HTCAPTION ' ---> no effect at all ' CALL SendMessage(ghDlg, %WM_SYSCOMMAND, %SC_MOVE, 0) ' ---> constant "Move" cursor ' CALL SendMessage(ghDlg, %WM_SYSCOMMAND, %HTCAPTION, 0) ' ---> no effect, it seems ' CASE %WM_LBUTTONDOWN ' ReleaseCapture ' CALL SendMessage(ghDlg, %WM_SYSCOMMAND, %SC_MOVE, 0) ' ---> "Move" cursor appears but Dialog doesn't move CASE %WM_LBUTTONDOWN SendMessage ghDlg, %WM_NCLBUTTONDOWN, %HTCAPTION, BYVAL %NULL ' ---> THIS WORKS! (...thanks Chris) END SELECT END FUNCTION 'DlgProc '---------------------------------------------------- FUNCTION PBMAIN () AS LONG LOCAL Style AS LONG Style = %WS_POPUP OR _ %DS_SETFONT OR _ %DS_NOFAILCREATE OR _ %DS_MODALFRAME OR _ %DS_3DLOOK DIALOG NEW 0,"",,,160,50,Style TO ghDlg DIALOG SHOW MODAL ghDlg, CALL DlgProc END FUNCTION 'PBMAIN '----------------------------------------------------
CASE %WM_LBUTTONDOWN ReleaseCapture CALL SendMessage(hWnd, %WM_SYSCOMMAND, %SC_MOVE, 0)
We process personal data about users of our site, through the use of cookies and other technologies, to deliver our services, and to analyze site activity. For additional details, refer to our Privacy Policy.
By clicking "I AGREE" below, you agree to our Privacy Policy and our personal data processing and cookie practices as described therein. You also acknowledge that this forum may be hosted outside your country and you consent to the collection, storage, and processing of your data in the country where this forum is hosted.
Leave a comment: