| Home | Download | Forum | Bug Tracker

|  | v1.4.0

DCX
This DLL lets you add new controls to mIRC dialogs as well as change other features like the visual style, position etc... DCX does not support mIRC controls (NOT EVEN mIRC TABS), nor anything related to mIRC normal dialogs except it's menus. DCX does not work like MDX so please read the manual and see dcx.mrc and dcx_tools.mrc for examples. XPopup (special mIRC menus) need to be patched to work on mIRC v6.2! Custom menus still work normally. The DLL creates the controls directly on the mIRC dialog and you use clone functions defined by /xdid and $xdid which behave like the regular /did and $did to interact with the controls. The event handling in the DLL is supported by a callback alias supplied by the user when the dialog is marked before adding DCX controls. The callback alias is called from within the DLL to ask for info (if you want to modify the default behavior in the DLL thus the "callback" type) and will supply the user with the events and parameters of these events. Every function in this DLL returns a value if used with the $dll identifier. D_OK [function]: [message] if successful, D_ERROR [function]: [message] otherwise. Note: Mandatory parameters are expressed in [SQUARE] brackets and optional parameters in (ROUNDED) brackets. Note: We strongly suggest you load the dcx_tools.mrc file included in the zip as it contains the necessary /xdialog, /xdid, /xdock, /xtray, /xstatusbar, /xtreebar and /xmenubar aliases and identifiers needed to use the DLL. Note: Function calls, styles, and references to anything DCX related are all case sensitive!
GDI+
For advanced support for images (such as extra file formats and drawing routines), Microsoft has released a library called GDI+. This is included in Windows XP, however older versions of Windows may not have this. Use $dcx(IsUsingGDI) to check whether or not you have GDI+ support on your computer. If you do not, you can download it here.
Callback Alias Events
Overview Every DCX Control fires events upon user action on the control. These events are sent to an alias specified when the dialog is Marked. Why are the events not sent like regular on *:DIALOG: events? Well for one thing, mIRC events are linear and static in the way that you cannot return any value to the event manager, to modify the default behavior of the event. Using callback support with an alias enables this type of interaction. Callback Event Data Format: [NAME] [EVENT] [ID] [PARAM]
Parameters:
NAME | $1 = Name of the dialog that the event came from.
EVENT | $2 = Name of the event (eg. sclick, dclick, ...)
ID | $3 = ID of the control that fired the event.
PARAM | $4- = Additional information, event specific (usually $null, except specified otherwise in documentation)
Note. Some control events support return values to change their default behaviour. When returning special values during certain events, such as nosize for sizing, interact with the DLL and modify the default event behavior. The events that support a return value will have a description of what the return value does when returned.
Latest Changes
If you notice any inconsistancies or errors with the documentation, please put a post on the forum on this thread! v1.4.0 New features added DCXML added /xtreebar to modify mIRCs treebar added /xstatusbar to dock a statusbar into mIRC's main window added XMenuBar to modify mIRCs menubar added a dialog callback called 'zlayershow' added /xdid -V for listview which scrolls list to make an item visible added /xdid -P for (rich)edit to paste clipboard content added +o flag for /xdock -b to use the old style treebar docking added /xdialog -P to use xpopup commands on dialog menus added +t flag to /xdid -i for image control to tile the image added /xdid -w for stacker to add images to internal imagelist added /xdid -y for stacker which clears the internal image list added /xdid -o for image control to offset picture added general 'noformat' style to disable support for mIRC formatted text in some controls added /xdid +k -1 for statusbar to reset color added +f flag to /xdid –t for statusbar to display formatted mIRC text added +c flag to /xdid –t for statusbar to create child controls added text support to line control added /xdid -a for text control to append text icon loading supports +a flag to show associated filetype icon if icon fails to load from specified file added animate styles to /xdid -h and /xdid –s /xdid -R +f can now be combined with the +R flag so image is resized to control size before applying region added 'alpha' support to treeview added 'alpha' support to trackbar added $xdid().isloaded property to directshow to determine if a file is loaded added +b flag to /xdock -n to disable scrollbars added $xdid().fname for directshow to get loaded filename added $xdid().fname for image to get loaded filename added 'closable' style for tab control to add X button on tab items added 'gradient' style for tab for gradient item background added 'closetab' event for tab control when the close button is clicked added +a flag to /xdid -a for directshow which specifies audio only added 'noheadersort' style to listview added /xpopup -R rounded style and ability to set transparency level added $xpopup().isrounded added $xpopup().alpha added $dcx(PickIcon, index filename) to open an icon selector on XP+ added $xdid().wname for docked @window control to retrieve window name added 'SelectedText' colour (index 11) to xpopup menus added +r flag for /xdid -C to set border colour added +b flag for /xdid -R to set control alpha blending level added +v flag for /xdialog -b to set vista styled dialog (2k+) (WARNING: uses extremely high processing power on older machines) /xdialog -t now allows setting of alpha value and transparent colour added /xdialog -V to adjust the vista aero glass area added $dcx(ActiveWindow) to retrieve properties of the currently active window within operating system added /xdid -v for tab control which moves an item to a new position added /xdid -l for edit to change readonly state added $xdid().isreadonly to edit control added xdid -r for text control to clear text added 'returndefault' style to ColorDialog added 'draglist' style to list control added callbacks itemdragbegin, itemdragcancel, itemdrag, itemdragfinish to list control added 'dragline' style to list control added support for a background image via /xdid -G for treeview added 'selected' and 'deselected' events to listview added 'selchange' event to treeview added 'showsel' and 'noshowsel' to /xdock -F +s styles (now moved to /xtreebar +s) added 'sizing' event to tab control added /dcx WindowProps +r to simulate a right click added $xtreebar().item to retrieve text from mIRC Treebar changed statusbar /xdid -l to accept percentage values as valid widths. values without the % symbol are considered fix widths added 'noauto' style to statusbar added 'noauto' style to rebar allowed divier to host all control types added 'showsel' style to edit allowed statusbar to host all control types added 'keydown' event to listview added general style 'hidden' to all controls except mdialog and mwindow added 'alpha' style to tab added /xdid -y to enable/disable keydown events for button being held down added listview /xdid -W This command lets you change the viewing mode added overlay icon support to treeview and listview added $xdid(listview).columnorder to get the order of the columns added listview +m flag to /xdid -n to allow manual width specification for all widths at once added dialog callback 'isverbose' which is sent as soon as a dialog is marked added listview /xdid -o to allow user to change column order added VALUE to sclick, rclick and mousebar as they were in docs (but not included in code) when space is pressed and checkboxes enabled, stateclick event will be triggered 'nospace' is accepted as a return value for 'keydown' to prevent the user from using the spacebar to change checkbox values added $xdid(tab).mouseitem added $xdid(toolbar).dropdownpoint added $xdid().textcolor added $xdid().textbgcolor added $xdid().bgcolor added ability to load from hash tables for listview via /xdid -a added ability to load from hash tables for treeview via /xdid -a added ability to load from hash tables and files for list via /xdid -A added 'multicol' style which allows a multi column list added 'hsbar' style to list which enabled the horizontal scrollbar added list /xdid -m command to configure 'multicol' added /xdialog -S added mIRC formatted text support to list added 'noformat' style to disable mIRC text formatting to list added $xdid(list).find support added comboex 'hscroll' style which enables the horizontal scroll bar changed /xpopup -s to support an optional hwnd argument that allows the popup to be opened relative to a specific window treeview - added /xdid -S to save contents to file directshow - added $xdid().state general - added /xdid -C +g/G flags to set gradients added hgradient and vgradient styles to various controls added /xtreebar -T to enable DCX controlled drawing of the mIRC TreeBar added /xtreebar -c to change TreeBar colors added /xtreebar -w to change TreeBar icons added infotips style to xtreebar added xtreebar styles balloon and noballoon (see note) changed /xdid to support `/xdid [cmd] id-id [options]` and `/xdid [cmd] id,id-id [options]` just like mIRC does with /did added /xstatusbar -f added `check` style and `checkchange` event to box added /xdialog -S to resize client area added 'check' style and 'checkchange' event to box added /xdialog -S added /xpopup -M added $xpopup().marked added $xdid().selected to listview added events: close (calendar hidden), open (calendar shown), change (date/time changed) to datetimepicker added event 'showtip' to trackbar added +f flag for dcxLoadIcon() functions (which affects many controls) to allow loading of filetype icon added BrowseDialog Syntax changes updated dcx_tools.mrc to include /xstatusbar, /xtreebar and /xmenubar aliases. please update your scripts! moved statusbar and treeview commands from /xdock to /xstatusbar and /xtreebar changed stacker /xdid -a to support image indexes changed listview /xdid -a to include OVERLAY, COLOR and BGCOLOR (for subitems) changed listview /xdid -j to include COLOR and BGCOLOR (optional parameters) changes to icon loading commands such as /xdid -w to support icon flags which affect most controls changed /xpopup -i to support flags /xtray now supports (and hence requires) icon flags changed $xdock(mIRC) switchBarSize, toolBarSize and treeBarSize to return 'x y w h' instead of just 'w h' changed statusbar /xdid -l to take widths instead of border offsets moved /xdock -G to /dcx GhostDrag changed $xstatusbar properties; 'isStatusBar' to 'visible', 'statusText' to 'text', 'statusParts' to 'parts' and 'statusTooltip' to 'tooltip' modified (rich)edit /xdid -S to make END parameter optional (to change caretpos) mwindow now accepts HWND as well as @window name for docking the 'changing' callback event for dialogs now include sizing, moving or both to determine which event occurred and the dialog sizes. /dcx xSignal changed to support optional flags +dst (xdock, xstatusbar, xtray) changed treeview and listview /xdid -w to allow setting an icon as an overlay icon. READ NOTES! listview /xdid -l now supports optional parameter OVERLAY changed [N] to be an optional parameter in $xdid(listview).hwidth so all widths are returned $xdid(lv).text parameter NSUB is now 1-based index $xdid(lv).icon parameter NSUB is now 1-based index $xdid(lv).seltext parameter NSUB is now 1-based index $xdid(lv).seltext NSUB is now optional, returns first column by default listview /xdid -n parameter COL is now 1-based index listview /xdid -v parameter COL is now 1-based index modified treeview /xdid -j to support overlays added header ID to listview 'trackbegin' event switched EVENT and DCXStatusBar parameters in XStatusBar signals dialog 'close' event has been broken up into 'close' and 'scclose' to provide better control made $xdid(listview, N, NSUB).text NSUB parameter optional (returns first column by default) listview events stateclick/sclick/dclick/rclick/rdclick/hover/selected/deselected SUBITEM index is now 1-based indexes listview event labelbegin now provides N and NSUB colorcombo /xdid -c now accepts 0 to clear selection (thanks andy for idea) moved VALUE param to the end of events (no syntax changes required) OpenDialog and SaveDialog now also return the full pathname Fixes and changes added check for correct flags prefix '+' in image control xdid -i added /xdid -Z as a temporary fix until the -Z listview problem is fixed changed WM_CTLCOLOR message parsing so they work correctly when a background brush is not set (fixed /xdid -C bug) changed AdjustMDIRect() to reserve space for docked dialogs only if they are visible. This has a side effect in that dialogs docked within the init event never have the visible flag set so show up wrong, This is fixed by using a timer changed /xdialog -x to send WM_CLOSE instead of using DestroyWindow() changed /xdid -T to use ListView_SetInfoTip() added fix for 1px images being stretched changed $xdid().text to use a 1-based index for parameter N fixed directshow $xdid().currentpos changed directshow /xdid -a to InvalidateRect() after loading media fixed listview bold/underline/etc flags being misapplied to subitems fixed /xdid -a stacker check for numtok image fixed background updating when transparent. fixed /dcx WindowProps check for -FLAG to +FLAG fixed the box border style when no text is supplied changed listview /xdid -a to check for nPos < 0 rather than == -1 changed stacker WM_DRAWITEM to only set back mode to TRANSPARENT when doing non-formatted text rendering changed statusbar /xdid -t to check for an invalid part and give an error changed statusbar /xdid -v to give an error when an invalid part is supplied changed mdialog to set back to OrigID in destroy, instead of setting to ID /xdid -h and /xdid -s now update CLA immediately changed GetHwndFromString() to allow supplying an HWND (allows mdialog/mwindow to dock via the hwnd) changed /xdialog -d to remove the control from the internal list when its an embedded dialog/window changed object delete code to set parent differently (this fixes most but not all of the undocking problems) changed /xdid -J to use LoadImage(IMAGE_CURSOR) and get a non-shared cursor handle (this allows us to delete the cursor and fixed the graphics corruption bug) changed /xdid -J to check if file exists changed /xdialog -q to check file exists changed WM_SETCURSOR code to check if the cursor to set is the same as the current before trying to set changed pager /xdid -d to remove mdialog or mwindow control from the internal list changed edit /xdid -j to set the ES_PASSWORD style before getting the char, allowing the XP style to be used instead of always setting to * small change to some xpopup if's to use a TString compare instead of doing a gettok as well added a buffer delete to IsFile() to cover the case where the search fails after having found the file the first time changed /xpopup -b to check a file exists and give an error if it doesnt changed /xpopup -b to accept 'none' or $null as a file name to remove current image changed /xpopup -i to check a file exists and give an error if it doesnt changed $xpopup().style to support 'vertical' and 'verticalrev' styles changed dcxLoadIcon() to use GDI+ when +P is supplied. this allows it to load any GDI+ supported image format as an icon changed dcxLoadBitmap() to use GDI+ when it can to load the image. this allows all bitmap loading commands to load any GDI+ supported format fixed incorrect coordinates of toolbar dropdown changed ChangeHwndIcon() to avoid doing things twice when small and large icons are the same changed /xpopup -b to trim() the filename fixed rebar wasn't returning the results from child controls changed directshow /xdid -a to check for a min of 4 args added a check for at least 4 args in subitems to listview /xdid -a changed listview /xdid -t to use the autoSize() function added check for directx 9 to directshow /xdid -a fixed trackbar thumb image rendering when selected changed /xdialog -j to only redraw the whole dialog if an ID isnt specified changed /xdock -A to halt on error fixed bug where button text would be forgotten when other buttons were deleted all dcx controls automatically redraw themselves upon theme change fixed /xdock -u requiring flags added background color drawing to panel via /xdid -C added directshow $xdid().volume to get current volume added directshow /xdid -V to set volume added directshow events rbdown, rbup and rclick fixed xpopup bug in DrawItemCheckBox() where pen was deleted without first being removed from HDC fixed duplicate sclick event when clicking on an unselected tab fixed treeview bug when moving an item to an empty parent fixed listview $xdid().pbar to work correctly added code to fix listview font changes per subitem added code to make sure listview has focus before doing a label edit. No longer need to force focus first changed ghost drag to use the set alpha level after a drag instead of 255 changed button background drawing a little changed pbar/image background drawing to only do parents background when transparent fixed tab bug where incorrect button ID was shown in sclick event fixed xpopup menu corruption when MDI client (channel) window is maximized then restored modified checkbox so correct $xdid().state value can be used during sclick event changed /xdialog -x to only send WM_CLOSE to modal dialogs added WM_CLOSE check for escape being pressed. Fixes divider being destroyed bug fixed listview pbars within items scrolling oddly when horizontal scroll is used changed /xdialog -t alpha and /xdialog -t transparentcolor to accept 'none' fixed bug with /xtray -i loading the wrong icon index changed /xdid -U to remove focus from control correctly changed how the panel and box controls are registered, which fixes the 'no tooltips' and 'label edit' bugs changed dcxSignal boolean into a finegrained struct changed mIRCSignalDCX() to require a boolean parameter changed SystemTimeToMircTime() to use mIRCevalEX() xtray and xstatusbar signals are now sent by default, but xdock signals are still disabled fixed calendar 'select' callback for single select fixed calendar $xdid().value returning 0 for single select added spaces between names in Version and changed '&' to 'and' added initImageList() for listview to make icon adding code cleaner added token count checking to /xdid -j ColorDialog, OpenDialog, SaveDialog, FontDialog and MsgBox. They no longer support modeless owners due to FindOwner() fixed /xdid -a so it adds to end if N out of range (thanks andy) fixed $xdid(listview).sel from appending unecessary comma at the end of list fixed /xdid -Z, but only for report view /xpopup -R +a 255 no longer causes a minor flicker when it tries to set opacity even when not supposed to fixed isverbose bug, missing ',' fixed a small delete bug in listview xdid -o changed /xdid -c/-d/-o to take item number 0 as meaning the last item in list changed activateSelectedTab() to not activate or redraw an inactive tab when sizing changed ExecuteLayout() to use SWP_NOACTIVATE | SWP_NOREDRAW | SWP_NOOWNERZORDER changed getFont() to return an HFONT and to use the GetWindowFont() macro changed getAnimateStyles() to check for a valid + flags char and to use a switch() statement changed listview/treeview regex search to allow for multiple matches to pattern fixed mIRC_DrawText() not vertically centering text when DT_VCENTER was used changed mIRC_DrawText() to reset font weight to original weight on a ctrl+o added check to DrawDialogBackground() for temp hdc being NULL changed treeview item select code to stop bkg image being skewed when an item is expanded changed /xdid Invalid ID error to reflect that it is an xdid error changed treeview drawing a little when transparent. Now only sets noredraw when WS_EX_TRANSPARENT treeview - changed /xdid -a to mask out the dcx flags as these were messing up the overlay and state icons. treeview - changed parsePath() to return the item handle instead of TVI_xxx values (needed for xml saving). dialog - added workaround for richedit not redrawing correctly in buffered redraw (WM_SIZE) xdock - now supports treebar class in mIRC v6.30 text - fixed redraw bug when control is enabled/disabled and formatted text is being used. xdock - changed AdjustRect() to correctly position treeview within treebar when statusbar is on. xtreebar - fixed style `ident` to be `indent` box - fixed mem leak in $xdid().inbox statusbar/xstatusbar - added check to -l command to stop the % parts adding up to > 100% toolbar - fixed /xdid -q bug where the command id was used but the TBIF_BYINDEX flag was specified. toolbar - changed /xdid -c and -i to use the TBIF_BYINDEX flag. xtreebar - added check for valid - char in switch. xtreebar - improved the handling of a non-winsdk compile. xtreebar - added an enum for all the /xtreebar -s styles. xtreebar - changed invalid style error to return the style in question. xtreebar - changed /xtreebar -c to check for a valid + char in flags. xtreebar - changed the image list we create in /xtreebar -w to use the icon sizes in the default list instead of 16x16 (this is still the default if the sizes cant be found) xpopup - changed /xpopup -l to accept `default` in place of an RGB value xpopup - changed $xpopup() to support the mirc and mircbar menus. xpopup - changed /xpopup -p to accept `default` as a colour value. xpopup - changed XPopupMenu::DrawGradient() to reduce the width by `dy` just like it reduces the height. This stops the right hand border being drawn over. xpopup - fixed bug where $xpopup().ismenu would always return $false dialog - fixed a bug in parseComControlRequestEX() where p_Control wasnt checked for NULL. listview - changed $xdid().mouseitem to return the subitem as well. edit - changed text handling code to support wide chars. xpopup - added monitor offset to menus opened by xpopup -s (requires testing) toolbar - fixed /xdid -c for first button. richedit - fixed link event not triggering richedit - fixed crash on link event richedit - fixed crash for $xdid().text on single line (need to add multi line number range check) richedit - added line number checks to $xdid(N).text to ensure it is within a valid range (0 < N < line count) xpopup - changed /xpopup -s to adjust menu position on the assumption that the x & y are relative to the client rect when an hwnd is supplied. ipaddress - commented out unecessary /xdid -r code (rich)edit - added code to /xdid -S to move caret to selected text button redraws after icon is set fixed tooltip hwnd wasnt correctly initialized to NULL changed CreateHDCBuffer() to copy the Pen, Brush, Layout & Font too added getting of the GetThemeColor() function from uxtheme button/text/ipaddress - changed the handling of `tooltips` style to report an error if tooltips havent been enabled for the dialog text - changed /xdid -t to use InvalidateParentRect() DCX Project added VS2008 project files removed commented code added TGetWindowText() function which gets the window text as a TString fix possible memleak with treeview setImageList() moved some mIRC HWND's into mIRCLink changed $dcx(GetSystemColor), $dcx(ColorDialog), $dcx(FontDialog) and $dcx(GetTaskbarPos) to avoid an unneeded copy to set the return value made parseListviewExStyles() and createImageList() static functions added dcxDock class which handles behaviour changed UltraDock to use new dcxDock class added TreebarDock using dcxDock class, which takes the same flags as UltraDock changed /xdock -b to use the new TreebarDock by default moved the drawing code for images to DrawBMPImage() and DrawGDIImage() updated dcx_tools.mrc /xdock alias to pass along $2- added DrawItemImage() for stacker to render the items image added mIRC_DrawText() function which draws a mIRC string using mIRC control codes changed IsFile() to do a file search before saying it can't access a file (allows it to find files in the system PATH) moved a whole bunch of functions out of misc.cpp and into mircFunctions.cpp or windowFunctions.cpp changed dcx_tools.mrc /return calls to /returnex added defines to TString such as SPACE, TAB, COMMA changed all controls to have an improved parseInfoRequest() that uses a TString prop instead of doing lots of gettoks changed some to_num() calls to to_int() when the number was typed as an int changed the $xpopup().style to use a switch statement instead of the ifs fixed statusbar $xdid().tooltip using gettok(3) when it should have been gettok(4) changed DrawParentsBackground() to only use dhwnd if it is not null changed WM_CTLCOLOR messages to set the background mode as TRANSPARENT and return a HOLLOW_BRUSH when the control hass WS_EX_TRANSPARENT set. this improves the look of some controls abit (exp radio or check) changed box to use a TString object from right after GetWindowText() changed to be always transparent moved DCXML out of dialog into its own section moved some defines to before the includes in defines.h to allow testing out the _SECURE_SCL 0 in the release builds toolbar changed to use MapWindowPoints() instead of ClientToScreen() and ScreenToClient() added NULL check to unregistreDefaultWindowProc() fixed memory leak in BitmapRegion() uncommented file access check from ChangeHwndIcon() changed some ifs in BitmapRegion() to make the meaning clear added a RGN_DATA count check before final create region fixed memory leak in background bitmap drawing changed all cursor code as needed to delete the LoadImage() cursor. fixed a small memory leak in BitmapRegion() when CreateDIBSection() fails. changed dcxLoadIcon() and ChangeHwndIcon() to take a flags argument Initialized some stacker vars to NULL changed radio WM_PAINT to set the text colours as set with xdid -C changed check WM_PAINT to set the text colours as set with xdid -C changed $xpopup().style to use a switch() instead of lots of ifs changed parseTrackFlags() to use a switch() instead of lost of ifs changed updateLayout() to return true/false to tell if it does anything or not changed button drawing code to check HDC is non-NULL before drawing bitmap fixed small memory leak in button bitmap drawing made getAnimateStyles() public added resizeBitmap() function. this resizes the supplied bitmap to matched the supplied RECT. if the resize works the old bitmap is deleted and the new one returned, otherwise the old bitmap is returned changed isPatched() function to be a const function added GetDXVersion() via getdxver.cpp. this is a function supplied by MS in its tutorials for getting the DirectX version. (dll needs to link with version.lib now) changed LoadDLL() to check for DirectX9 and set a variable if its found changed IsUsingDirectX function to check for DirectX version, function now replies with either the dx version or $false if no dx was found fixed small possible memory leak in trackbar custom drawing added showError() function to replace all other error display functions changed some error return codes to be 0 (halt) changed WM_HELP event to set itself as handled changed updateParentCtrl() to be a little bit faster when parent is dialog added CommonMessage() function to DcxControl class to handle WM_xxx messages that are common to all controls, like WM_HELP. DLL about 10k smaller changed SetupAlphaBlend() to pass on the client rect to DrawParentsBackground() changed to use TBSTYLE_xxx added WM_PRINTCLIENT to all controls, needed for AnimateWindow() and new transparency/alpha code changed DrawParentsBackground() to work in a manner similar to Vista's DrawThemeParentBackgroundEx() added getting DrawThemeParentBackgroundEx() from uxtheme.dll on Vista streamlined updateParentCtrl() function for new parent rendering method added DrawThemeParentBackgroundEx() usage on Vista to DrawParentsBackground() removed an unneeded updateParentCtrl() call in button control changed stacker item drawing code to move the right hand edge within the border added code to free uxtheme.dll on dll unload updated CreateGrayscaleIcon() to new code from The Code Project that supports 32bpp added InvalidateParentRect() which invalidates a controls area on its parent Tstring changed some compare operators to be constants Tstring changed the char[] operator to be const added DCX_USE_WINSDK to defines.h as a way to disable code dependant on the Windows SDK (Vista) fixed copyright from 2006 to 2006-2007 added some comment sections to defines.h (getting real messy!) DLL now gets GetThemeBackgroundRegion() and GetWindowTheme() function pointers from uxtheme.dll added IsVistaStyle() function changed button background drawing to only be done within the WM_PAINT event added mIRCevalEX() which takes a formatted eval string changed themed drawing to Open/CloseThemeData() instead of doing GetWindowTheme() to help maintain the correct region streamlined listview/treeview sortItemsEx() and matchItemText() added SetupOSCompatibility()/FreeOSCompatibility() functions to handle getting function pointers changed AnimateWindow()/FlashWindowEx()/InSendMessageEx()/GetWindowInfo() calls to be function pointers. hopefully this should fix the win98 compatibility problems added getting DwmIsCompositionEnabled() function pointer. it is used to determine if user is on on Vista and if Aero is enabled added WINVER >= 0x600 checks to includes for theme stuff when compiling as Vista added WM_DWMCOMPOSITIONCHANGED define updated shadow code to match latest v03 from code project now disables shadows when on Vista and Aero is enabled lots of little changes/fixes for things only noticed with the Intel compiler made error messages look consistent across project created new dcx_demo.mrc that uses DCXML and showcases most of the controls added CreateHDCBuffer()/DeleteHDCBuffer() to create a temp HDC for buffered drawing changed some image SelectObject() calls to macros for the types most controls now use GDI+ to draw where possible added comment for CTLF_ALLOW_DOCK moved $shell alias from dcx_tools.mrc to dcx.mrc (which has a bunch of broken demos anyways) changed all SetWindowLong(.. GWL_WNDPROC,..) calls to be SetWindowLongPtr() added test code to listview NM_CLICK to allow selecting subitems (NEEDS TESTING, SUBJECT TO CHANGE/REMOVAL) added listview LVN_GETINFOTIP message handling to set tooltips changed treeview /xdid -w to only gettok the flags once added listview /xdid -r comment added SetVerbose() to dialog added IsVerbose() to dialog added error checking to treeview TNV_GETINFOTIP and TVN_SELCHANGED added note about this->getExStyle() in listview mode at top of source file listview grid style now redraws properly when scrolling changed default colour values to CLR_NONE added m_clrBackground var for bkg colour (colour of m_hBackBrush) added file access error to /xdid -J added file access error to /xdialog -q changed file access error report to return the file name too for directshow, stacker, treeview and image added invalid item error reports to listview /xdid -B/-c/-d/-j/-k/-l/-v/-T added redrawBufferedWindow() function to redraw a dialog without flicker (atm not for use by child controls, may fix/change this) changed WM_SIZE to use redrawBufferedWindow() instead of redrawWindow() added check for WS_EX_COMPOSITED to redrawBufferedWindow() added notes about redrawBufferedWindow() and Vista style/Composited changed mIRCeval() and mIRCevalEX() to take a maxlen var which contains the size of the result buffer changed tstring numtok() to return 0 when string is empty, instead of 1 made getAnimateStyles() arg a const changed box and panel controls to use CS_PARENTDC changed LayoutManager::updateLayout() to return a BOOL changed drawing a little changed box/panel CLA to only force a redraw on wm_size when it actually does something changed CreateHDCBuffer() to take a const rect arg changed dshow properties enum added DCX_USE_BOOST define to defines.h to enable using the Boost libraries for regex features direct show - disabled the long-double conversion warnings treeview - changed the values of all the dcx TVIS_xxx defines to take them out of the range of the state and overlay icons. divider - included AggressiveOptimize.h xdock - added DcxDock::status_getTextLength() to return an items text length. xdock - changed some cmd args into constants xstatusbar - changed the part set/get text cmds to use an allocated buffer of the right size, instead of a static size. general - changed DrawCtrlBackground() to draw a gradient using the colours set by /xdid -C when the control has either the hgradient or vgradient style. box - changed to use DrawCtrlBackground() instead of FillBkg() general - changed some CLR_NONE refrences to CLR_INVALID general - changed DrawCtrlBackground() to FillRect() with COLOR_3DFACE when controls disabled. text - improved drawing a little, now uses COLOR_GRAYTEXT when control is disabled. tstring - added a new constructor which takes a buffer size to allocate. general - changed timeout check to check for != 1 instead of == 0 general - misc macro usage changes. general - made some TString function args consts. general - moved DirectX checking out of the LoadDLL() function to speed up loading. check is now moved into a DXSetup() function which is called by $dcx(IsUsingDirectX) or when a file is loaded into a directshow control and DX9 hasnt already been found. xtreebar - changed /xtreebar command to always do a RedrawWindow() at the end. general - changed the xpopup class setup to use the already defined WNDCLASSEX general - changed the xpopup owner window to be of type HWND_MESSAGE on XP+ xpopup - added XPopupMenu::setDefaultColor() to allow resetting a specified colour to its default. general - added macro dcxRegisterClass() to register most of the dcx classes TString - changed TString.to_wchr() to support utf8 encoding. general - changed mIRC_DrawText() to support utf8 encoded text. general - added getting DrawThemeEdge() function pointer from uxtheme.dll general - changed DcxControl::controlFactory() and all controls to throw an exception when unable to create the window. general - changed DrawCtrlBackground() to draw themed background (trying to fix some drawing bugs whem themed, may reverse this if its not helping) xdock - added function UnDockAll(). Its only called during cleanup atm. moved declaration of VectorOfXPopupMenu to top of file datetimepicker - updated link for msdn docs toolbar - removed some commented debug code. treeview - $xdid().text (& others i expect) were unable to get the first item. This was caused by correctTargetItem() returning FALSE when TVI_ROOT was passed. xpopup - getMenuByName() can now search special menus (can be turned off by boolean parameter) trackbar - option was undefined when not using winsdk. tstring - added comment about deprecated function in TString.sprintf() xpopup - changed parseTrackFlags() to take a const arg. changed /xpopup -x to use a switch() instead of a series of ifs changed $xpopup().exstyle to return all the styles instead of just one. shortened $xpopup().isrounded changed XSwitchFlags to be a class, and cleaned up the flag switches in code added comments to code when /xdid -r has no code (to say it was to prevent invalid flag message) Documentation fixed errors in dcxdoc reworded stuff cleaned up some arrays so they look more consistant fixed docs to work with php5 when short_open_tag is Off updated dcxvsmdx page fixed year of copyright to be dynamically generated by php (andy) removed a duplicate dcx_inc.php in /doc updated license files to 2007 removed v1.4 comment (no such version yet) added writeDcxLoadIcon() to handle documentation for controls which use dcxLoadIcon added array_insert() fixed description for tab control fixed description of /xdialog -b +o fixed descriptions for /xdid -f CHARSET added a note for listview /xdid -Z fixed tutorial example missing a close-brace in xpopup page removed unecessary parameters in /xtray -d removed 'alpha' from events changed global style message to exlude embedded dialog/window controls added a note to comboEx styles to state the height is required for the dropdown uncommented multiple examples for $dcx(ColorDialog) moved some args to be arranged in alphabetical order fixed some broken wiki tags added xtreebar.php and xstatusbar.php removed "selstart" from statusbar properties (copy paste remnant) fixed grammar and reworded writing to be easier to understand on xdock page removed alot of unnecessary array declarations in $xdock properties added a note for all docking commands about dialogs within the INIT event fixed incorrect table tagging in credits section added notes about docking during dialog INIT in all /xdock docking functions moved part of image /xdid -o description to notes moved change log below callback section on index page renamed VALUE to PARAM on index page fixed a bug in /format_xcmd_header which caused examples with '0' values to be ignored updated 'owner' style description/notes for ColorDialog, OpenDialog, SaveDialog, FontDialog and MsgBox. They no longer support modeless owners because of FindOwner() updated return value to $null for OpenDialog, SaveDialog and FontDialog fixed description for ICON in listview /xdid -l fixed description for 'notrack' in listview trackbegin added diagonal examples to /xdialog -a, /xdid -h and /xdid -s added operating system note to /xdialog -a, /xdid -h and /xdid -s fixed section heading in xpopup page for Special menus and Xpopup item path fixed description for /xpopup -b only supporting BMP when GDI+ is not available fixed description for /xpopup -d, as it also removes menus with items in it fixed edit keyup and keydown events to include example fixed keyup typo cleaned /xdid -Z for richedit notes array updated list of controls available for /xdialog -c updated list of controls which box, divider, pager, panel, rebar and statusbar support changed the format which box, divider, pager, panel, rebar and statusbar list supported controls a list of these controls can be found at http://dcx.scriptsdb.org/controls.xls updated main page PARAM = $4- removed /xdid -l NSUB being 0-based index when it isnt added comment to 'editlabel' style in listview changed note for listview grid style removed +h copy paste remnant from note in listview /xdid -t (thanks hkr) fixed xdialog 'close' details and added 'scclose' events reworded parts of XTray Signals section added notes to dialog (embedded) control page and xdialog about closing docked dialogs within the close event added notes to dialog (embedded) control page and /xdialog about closing docked dialogs within the close event edited /xdialog -g comment about BMP files fixed stacker /xdid -a example and parameters added example for listview /xdid -j fixed listview seltext/pbar/keydown example commented out box checkchange event added error checking to see if examples exist when a command is set updated format_parameters() so it doesnt accept '0' as '__args' fixed ALOT of things in the docs such as missing parameters, outdated examples, inconsistancies with examples (big thanks to andy for spotting em out) moved directshow /xdid -V so its in alphabetical order removed a few redundant notes added missing examples for many events on numerous control pages fixed C:\mIRC\ error not displaying on a few pages, simply changed it to C:/mIRC/ added note to listview labelbegin event reworded some events for scroll and trackbar added some notes for 'dl_progress' for webctrl renamed IS_ENABLED to ENABLED for webctrl events updated /xdid -Z on /xdid page removed /xdid -Z on listview page removed duplicate entry for /xpopup -R removed unnecessary MENU declaration from /xpopup -R and useless note added operating system requirement to /xpopup -R +a fixed typo with trackbar tooltips style added a wiki tag [os] changed output html for changes.htm a bit so its not all in 1 line changed `&amp;` to `and` in changes.htm added dcxml documentation documented `check` and `checkchange` features in box fixed /xdid -m tabstop stuff for list fixed /xdid -R descriptions for +f updated dcx_inc.php comment for array_insert() updated dcx_inc.php comment for array_insert() fixed list /xdid -m tabstop stuff fixed /xdid -R descriptions for +f listview /xdid -j, fixed STATE/+FLAGS inconsistancy toolbar /xdid -a fixed incomplete wiki tag fixed section labelling for dcx vs mdx and CLA pages changed 'Index' to 'Home' in left menu added hkr to helpers in Credits removed useless "cell text is optional" notes from statusbar -v and -t commands cleaned up /xdid -y for statusbar added some margin space between left menu and main content put some padding for links in left menu so it has more of a ladder hierarchy removed translated docs removed additional div in SECTION label so css can have more effect on text fixed SECTION_INTRO on treeview page dcxdoc_print_description() now accepts null as $caption fixed SECTION_GENERAL problem with tutorials page added new line break to dialog notes fixed extremely stupid ie7 case insensitive anchor bug (eg. /xdid -T would link to /xdid -t) updated comment for dcxLoadIcon() flag +a added dcxLoadIcon() flags to stacker /xdid -w fixed grammar mistakes on Open/Save/Color/Font/Msg dialogs
Credits
Lead Developer | ClickHeRe
Supporting Developers (in chronological order) | hixxy twig* Mpdreamz HAPM Ook
Documentation | twig* Andy Mpdreamz
Additional libraries |
CWndShadowx | Copyright (c) 2006 Perry Zhu
Treebar.dll | NaquadaServ
MDX vs DCX | Mpdreamz
Demo Script | elizio
General Testing (and forum helpers!) | dJabba PYERO dunkelzahn TheShadowOne zipster bl0x darkrift The_Mega_ZZTer Duplex evasion hkr
Tutorials | j0x's DCX Tutorials (French) DCX Forum: Help: CLA DCX Forum: CLA :( Mpdreamz's Cell Layout Algorithm Tutorial EinsteinXXL's CLA Tutorial (German)
Translations |
Dutch | Mpdreamz
Finnish | Mkz
French | dunkelzahn
German | Duplex
Hebrew | seec77
Italian | Still need someone!
Malaysian | da^hype
Portuguese (Brazil) | Henrique
Portuguese (Portugal) | Theorem
Spanish | PaTaGoN
Swedish | Rixxon
Website | http://dcx.scriptsdb.org Forums
Support | #scriptsdb.org @ Undernet #genscripts @ AmeriChat

Contact | © 2005-2007 | Last Updated: 25th December, 07