************************************************************************
	README.TXT	on MSELM		last update:  94-10-29
************************************************************************

  Purpose:	Multiple Selection Moving Box

  Author:	ABRI Datenverarbeitung GesmbH
		Andreas Vogel
		Miltnerweg 17/14/19
		A-1110 Vienna, Austria
		phone/fax/modem: 0043 1 76 23 35
		handy:		 0043 0663 802 538
		CIS:		 100343,2704

	--------------------------------------------------------
		MSELM IS FREE OF ANY CHARGE
	--------------------------------------------------------

Intro
=====

	This listbox implementation provides single or multiple selections
	and moving of the choosen items similary to the Borlands project
	window. I do not use the ItemData, so if you need to act on the new
	order of the items (e.g. displaying new data) simply use the ItemData
	for your own purposes.

	Some code sequences look very strong, but the handling with the MS
	messages and focus rectangles is not as easy as I thought.

	I lent two cursor bitmaps from one of the Borland-IDE DLLs.


How to use MSELM in your application
====================================

	1.) Create a RC file containing a dialog template with a listbox with
	    following settings:

		LBS_EXTENDEDSEL
		LBS_OWNERDRAWFIXED
		LBS_HASSTRINGS
		WS_VSCROLL (if you like)

	2.) Create a dialog box in your application code and an instance
	    of cMSelMBox, e.g.:

	    TListBox *lb = new cMSelMBox(this, ID_LISTBOX);


	3.) Receive a changing in order message in your dialogbox with:

	    EV_MESSAGE(WM_NEWORDER, NewOrderProc)

	    and

	    LRESULT NewOrderProc(WPARAM, LPARAM)

	    You can also act on the LBN_LBUTTONDBLCLK message.
	    The LBN_SELCHANGE, I guess, is absolutely useless for the normal
	    user.

	4.) ok thats all, the rest performs MSELM.CPP


Version upgrades
================

  V1.2	94-10-30 MSELM1 replaces old MSELM1

      - Sometimes when trying to move the item immediately after the selection
	the moving is inhibited. Bug fixed by some code removing in MouseMove().


  V1.1	94-10-29 MSELM1

      -	Troubles in EvDrawItem() in drawing the listbox items text
	(resulting in white lines at each characters left and right side).
	This bug also happens in other applications but with less effect and
	depends on using 3D-look.

	So there is a difference in the handling whether using 3D-effects or
	not. The main result of my investigation is that the text is painted
	without filling the background completely.
	Simply solution: pre-filling the background rectangle by myself.

      -	Missing CUR files appended to ZIP. (They also disappeared from my
	disk but my RES file was still present, Sorry)


  V1.0	94-10-25 MSELM

      -	first release for CIS


About the author
================

	I have also created a hierarchical listbox with resource or external
	(on disk saved) bitmaps.

	If anybody is interested in either the hierarchical listbox or in a
	merging of the two programs (HIERBOX + MSELM) contact me under one
	of the address(es) listed above.

	If you have any experiences such as troubles or improving suggestions
	it would be nice to hear from you.


Andy
