· Начало · Статистика · WASM.RU · Noir.Ru ·

 WASM Phorum (Оффлайн - 24.11.2003) —› WASM.WIN32 —› Drag List Box Problem

Посл.отвђт Сообщенiе


Дата: Ноя 2, 2003 03:32:46

Привет всем!

Я делал drag list box следуя справке Win32 Programmer's
Reference.
Drag List Box размещен на диалоге,
оконная процедура диалога получает коды уведомления
DL_BEGINDRAG, DL_CANCELDRAG, DL_DROPPED, а вот
код DL_DRAGGING не приходит, когда я пытаюсь перетащить
какой-нибудь item.
У кого-нибудь есть мысли по этому поводу?


Дата: Ноя 2, 2003 04:19:17

invoke	DragAcceptFiles, [hWnd], 1
	.elseif [uMsg]==WM_DROPFILES
		xor	ebx, ebx
	@@:	invoke	DragQueryFile, [wParam], ebx, ADDR szFileName, sizeof szFileName
		test	eax, eax
		jle	@@dragf
		invoke	SendDlgItemMessage, [hWnd], 102, LB_ADDSTRING, 0, ADDR szFileName
		inc	ebx
		jmp	@B
	@@dragf:invoke	DragFinish, [wParam]


Дата: Ноя 2, 2003 14:06:10

Я говорю не о перетаскивании извне, а о перемещении одного элемента
внутри listbox.
Не приходит код уведомления DL_DRAGGING, а остальные приходят.

.IF uMsg==WM_INITDIALOG
INVOKE GetDlgItem, hwnd, ID_LISTBOX
INVOKE MakeDragList, eax
INVOKE RegisterWindowMessage, ADDR DRAGLISTMSGSTRING
mov uDragListMsg, eax
.ELSEIF
....
....
....
;===========================
;
mov eax, uDragListMsg
.IF uMsg==eax
mov esi, lParam
.IF dword ptr [esi] == DL_BEGINDRAG
;INVOKE MessageBox, hwnd, ADDR msg1, ADDR mb_cap1, 0
.ELSEIF dword ptr [esi] == DL_CANCELDRAG
;INVOKE MessageBox, hwnd, ADDR msg2, ADDR mb_cap1, 0
.ELSEIF dword ptr [esi] == DL_DROPPED
;INVOKE MessageBox, hwnd, ADDR msg3, ADDR mb_cap1, 0
.ELSEIF dword ptr [esi] == DL_DRAGGING
INVOKE MessageBox, hwnd, ADDR msg4, ADDR mb_cap1, 0
.ELSE
xor eax, eax
ret
.ENDIF
mov eax, 1
ret
.ENDIF
;===========================


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.071