In the designer I'm working on I'm using the arrow keys to move a control around.
I want to implement a coarse adjustment by using CTRL+ the arrow keys.
I haven't been able to figure out where and how to trap that.
?
LarryMc
			
			
			
				Hi Larry, this work for me, I don't know if is the better approach  :)
DECLARE IMPORT, _GetAsyncKeyState ALIAS GetAsyncKeyState(vKey AS INT),WORD
DIALOG w1
OPENWINDOW w1,0,0,300,202,0x80C80080,0,"Caption",&w1_handler
run = 1
WAITUNTIL run=0
SUB w1_handler
	SELECT @MESSAGE
		CASE @IDKEYDOWN
			ProcessKeyboard(@wparam)
		CASE @IDCREATE
			CENTERWINDOW w1
			/* Initialize any controls here */
		CASE @IDCLOSEWINDOW
			run = 0
			CLOSEDIALOG w1,@IDOK
	ENDSELECT
RETURN
ENDSUB
SUB ProcessKeyboard(int nKey)
	IF _GetAsyncKeyState(17)>0 THEN ' if control is pressed
		if nKey = 37 THEN
			DEBUGPRINT "left"
		ENDIF
		if nKey = 38 THEN
			DEBUGPRINT "top"
		ENDIF
		if nKey = 39 THEN
			DEBUGPRINT "right"
		ENDIF
		if nKey = 40 THEN
			DEBUGPRINT "bottom"
		ENDIF
	ENDIF
ENDSUB
			
			
				fasecero
Your code got me over the hump.
I modified it to do exactly what i wanted as follows:
SUB ProcessKeyboard(int nKey)
	int cx=0,cy=0,adj=0
	IF _GetAsyncKeyState(17)>0 THEN ' if control is pressed
		adj=3
	else
		adj=0
	endif
	if nKey = 37 THEN
		'DEBUGPRINT "left"
		cx=-1-adj
	ENDIF
	if nKey = 38 THEN
		'DEBUGPRINT "top"
		cy=-1-adj
	ENDIF
	if nKey = 39 THEN
		'DEBUGPRINT "right"
		cx=1+adj
	ENDIF
	if nKey = 40 THEN
		'DEBUGPRINT "bottom"
		cy=1+adj
	ENDIF
		if cx or cy
			MoveCtrls(cx,cy)
		endif
ENDSUB
Thanks again
LarryMc