Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Lag when the system repaints the check boxes
#1
Hi fellas.

I am using a dialog with check boxes that use a dll for some nice simulations. It works fine, but the system only repaints the check box once the dll is finished. So there is a little lag, since the user checks the box and the box is repainted by the system.

I have used WM_COMMAND and BN_CLICKED notification code, as usual.

I can fix that using:

if check box state changes -> global_variable=1

WM_TIMER
if global_variable
--- global_variable=0
--- use dll

I would like to use a more elegant method, so my question is:

Please, is there any kind of notification after the check box is repainted? How to use it? Any other ideas?

Thanks for any help. Regards.
#2
Call the dll in another thread.
Then if want to wait, use opt waitmsg 1.

Function Dialog192
Code:
Copy      Help
str dd=
;BEGIN DIALOG
;0 "" 0x90C80AC8 0x0 0 0 224 136 "Dialog"
;3 Button 0x54012003 0x0 8 8 48 10 "Check"
;1 Button 0x54030001 0x4 116 116 48 14 "OK"
;2 Button 0x54030000 0x4 168 116 48 14 "Cancel"
;END DIALOG
;DIALOG EDITOR: "" 0x2040308 "*" "" "" ""

str controls = "3"
str c3Che
if(!ShowDialog(dd &sub.DlgProc &controls)) ret


#sub DlgProc
function# hDlg message wParam lParam

sel message
,case WM_INITDIALOG
,case WM_DESTROY
,case WM_COMMAND goto messages2
ret
;messages2
sel wParam
,case 3 ;;Check
,if but(lParam) ;;if checked
,,EnableWindow lParam 0
,,opt waitmsg 1
,,wait 0 H mac("sub.Thread")
,,EnableWindow lParam 1
,,out "finished"
ret 1


#sub Thread
;call a dll function, for example
Sleep 3000
#3
Thanks for your help.


Forum Jump:


Users browsing this thread: 1 Guest(s)