since you prefer to have an example,
here is one using "SendMessage hList, %LB_SETCURSEL, LastItem, 0"
Code:
#COMPILE EXE '#Win 8.04# #DIM ALL #REGISTER NONE #INCLUDE "Win32Api.inc" '#2005-01-27# %Listbox = 101 %Button = 201 '______________________________________________________________________________ CALLBACK FUNCTION DlgProc() AS LONG LOCAL Buffer AS STRING LOCAL LastItem AS LONG STATIC Looper AS LONG STATIC hList AS DWORD SELECT CASE CBMSG CASE %WM_INITDIALOG hList = GetDlgItem(CBHNDL, %Listbox) 'Get listbox handle FOR Looper = 1 To 15 Buffer = "Item " & FORMAT$(Looper, "000") 'Fill listbox SendMessage(hList, %LB_ADDSTRING, 0, STRPTR(Buffer)) 'Add info to listbox NEXT SendMessage hList, %LB_SETCURSEL, Looper - 2, 0 'Go to last position CASE %WM_COMMAND SELECT CASE CBCTL CASE %Button IF CBCTLMSG = %BN_CLICKED THEN Buffer = "Item " & FORMAT$(Looper, "000") 'Prepare info for listbox SendMessage(hList, %LB_ADDSTRING, 0, STRPTR(Buffer)) 'Add info to listbox LastItem = SendMessage(hList, %LB_GETCOUNT, 0, 0) - 1 'Ask for last item number, zero based SendMessage hList, %LB_SETCURSEL, LastItem, 0 'Go to last position INCR Looper 'Needed to update the buffer END IF END SELECT END SELECT END FUNCTION '______________________________________________________________________________ FUNCTION PBMAIN() AS LONG LOCAL hDlg AS DWORD DIALOG NEW %HWND_DESKTOP, "Listbox", , , 162, 100, _ %WS_CAPTION OR %WS_MINIMIZEBOX OR %WS_SYSMENU, 0 TO hDlg SetClassLong hDlg, %GCL_HICON, LoadIcon(BYVAL %NULL, BYVAL %IDI_INFORMATION) 'Set a nice dialog icon CONTROL ADD LISTBOX, hDlg, %Listbox, , 6, 6, 150, 80 CONTROL ADD BUTTON, hDlg, %Button, "Add to list", 6, 80, 150, 15 DIALOG SHOW MODAL hDlg, CALL DlgProc END FUNCTION '______________________________________________________________________________ '
Leave a comment: