Professional UI Solutions
Site Map   /  Register


Please Log In to post a new message or reply to an existing one. If you are not registered, please register.

NOTE: Some forums may be read-only if you are not currently subscribed to our technical support services.

Forums » Prof-UIS Tech Support » Bugs in 2.84 Collapse All
Subject Author Date
Rado Manzela Dec 26, 2008 - 6:18 AM

Thank you for new version, I was looking forward message box class, but I need to have bugs fixed before I can switch to new version. Can you please fix this please?

1. when I click to some item in tree, it is selected and focused. When I quickly click to another item, instead of moving focus and selection it is just expanded (it works almost like double click).

2. This is what I’ve wrote to you about 2 or 3 times before but received no answer.  I have tre grid class defined like this: class CChildView : public CExtPPVW < CExtTreeGridWnd >. When I invoke print preview, the last column on the page is truncated (when there is more columns than can fit on one page). There must be some bug, that column should be placed on next page.

3. this is more like new feature maybe for next version. The serialization is unusable for storing data for next program run. It contains raw data with no version information so when I have stored options for example for CExtGridCellFont and then the program is upgraded and new version is using new version of Prof-uis, reading the options fails with exception in better case, or with messed data.

I hope you’ll release some patch with bug fixes. Thank you.


Technical Support Dec 26, 2008 - 2:32 PM

1) We failed to reproduce this issue. You can find a CExtTreeGridWnd window in the FilteredGrids sample. We clicked it many times and always selection was moved correctly from row to row. Please provide us with more details about how we should click it.

2) The fix was not included into 2.84. We can provide you with the download for the latest stable 2.85 where the coordinate system computations for enhanced metafile painting was rewritten from scratch. The page metafiles are now measured correctly. Here is the ZIP file with sample projects:

3) We need more details about this. Prof-UIS serialization methods really were version depended many versions and many years ago. We didn’t change any data at least formats last several versions.

Rado Manzela Dec 28, 2008 - 12:51 PM

1) 2)

Print preview looks better, but I would need sources :) I’ve tried filtered grids sample / filtered tree grid :

- shrink wilman kala and frankenversand, then start quickly clicking alternating on them, when time between click is as short as doubleclick, it will expand last item instead just moving focus.

3) deserializing of CExtGridCellFont in 2.84 throws exception on data serialized in 2.82 (while deserializing color data, it was changed)


Technical Support Dec 31, 2008 - 2:55 AM

The double click events are emulated in the beginning of the CExtGridBaseWnd::OnLButtonDown() method. We modified beginning of this method and added mouse position checking code to fix the tree row expanding issue:

 void CExtGridBaseWnd::OnLButtonDown(UINT nFlags, CPoint point) 
            ASSERT_VALID( this );

            if( m_eMTT != __EMTT_NOTHING )
                        SendMessage( WM_CANCELMODE );
                        if( m_eMTT != __EMTT_NOTHING )
            } // if( m_eMTT != __EMTT_NOTHING )
UINT nRepCnt = 1;
static clock_t g_nLastClock = 0;
static HWND g_hWndLastClick = NULL;
static CPoint g_ptLastClick(-32767,-32767);
CPoint ptLastClick = point;
            ClientToScreen( &ptLastClick );
clock_t nCurrClock = ::clock();
            if(                     g_hWndLastClick == m_hWnd
                        &&        g_ptLastClick == ptLastClick
                        clock_t nDiff = (clock_t)::abs( nCurrClock - g_nLastClock );
                        clock_t nDoubleClickTime = (clock_t)::GetDoubleClickTime();
                        if( nDiff <= nDoubleClickTime )
                                    nRepCnt = 2;
            g_ptLastClick = ptLastClick;
            g_hWndLastClick = m_hWnd;
            g_nLastClock = nCurrClock;

HWND hWndOwn = m_hWnd, hWndFocus = ::GetFocus();
            if( ( hWndFocus != m_hWnd ) && ( m_nMouseActivateCode == MA_ACTIVATE || m_nMouseActivateCode == MA_ACTIVATEANDEAT ) )
            { // check MDI child frame activation explicitly
                        bool bIsMDIChildWindow = false;
. . .

We have checked the source code of the CExtGridCellFont::Serialize() method. It’s exactly the same in Prof-UIS 2.82 and 2.84. The problem is outside the CExtGridCellFont class. The CExtGridCellFont class class is based on the CExtGridCellEx class. The CExtGCF < CExtGCC < CExtGridCell > > class is derived from the CExtGridCellEx class in Prof-UIS 2.82. It’s derived from the CExtGCJ < CExtGCF < CExtGCC < CExtGridCell > > > class in Prof-UIS 2.84. The new CExtGCJ template decorator class adds the cell join feature support to grid cell objects. The CExtGCJ::Serialize() virtual method invokes the CExtGCJ::SerializeJoin() for serialization of joined cell region information. The CExtGCJ::Serialize() method adds new information into serialized stream in Prof-UIS 2.84. This information is not waited by Prof-UIS 2.82. So, we confirm this is the version dependent compatibility issue. If you strongly need to keep 2.82 format compatibility, then you can implement the CExtGCJ::SerializeJoin() virtual method with empty body in your CExtGridCellFont-derived class.

Rado Manzela Jan 4, 2009 - 10:53 AM

Thank you, the fix works.