Professional UI Solutions
Site Map   /  Register
 
 

Forum

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 » Where is the support? Collapse All
Subject Author Date
Alastair Watts Mar 15, 2011 - 1:42 AM

I have a number of outstanding support issues which are yet resolved, infact, some requests have been ignored.


Would someone please respond.

Alastair Watts Apr 11, 2011 - 5:08 AM

Any news on the (Show All) bug?


Thanks


 

Alastair Watts Mar 23, 2011 - 5:58 AM

This is a bug, not a feature request.  I have sent you a test project ... my findings are:


1. CExtGridWnd - dynamic filters - not suitable for editing as only visible row values are added to the Value Filters list so there is no way to un-filter hidden rows.


2. CExtGridWnd - static filters updated using UpdateStaticFilterValueForOuterRow(-1) - incorrectly ticks (Show All)


3. CExtTreeGridWnd - dynamic filters -  incorrectly ticks (Show All)


4. CExtTreeGridWnd - static filters updated using UpdateStaticFilterValueForOuterRow(-1) - incorrectly ticks (Show All)


 


Would someone please look into this, thanks.


 

Alastair Watts Mar 21, 2011 - 8:30 AM

Thanks very much for the check combo box fix.

 

Regarding the header filter - I use static value filters because when using a plain grid (tree grid works OK) dynamic filters don’t add all values to the list, only those which are not hidden.  It seems that a plain grid is not suitable then, so perhaps I must recode using a tree grid?

 

The problem I am experiencing seems to be caused by (Show All) being incorrectly ticked which is most probably due to the value filters list still containing the old edited-out value, surely this could & should be updated when calling UpdateStaticFilterValueForOuterRow().

 

Technical Support Mar 22, 2011 - 3:18 AM

The CExtTreeGridWnd and CExtGridWnd filters are different. The CExtTreeGridWnd constantly provides access to all the HTREEITEM row handles regardless of their hidden state. The CExtGridWnd control hides its hidden rows inside inner row range of data provider and hidden rows are inaccessible. You can use any of these controls. We can assume your note about hidden rows in CExtGridWnd control is a feature request.

Alastair Watts Mar 17, 2011 - 3:58 PM

I meant a new project ... I’ll sent it together with a long outstanding issue regarding header value filters not working correctly.


Thanks


 

Technical Support Mar 21, 2011 - 12:57 AM

To fix the check combo box flickering, please update the source code for the following method:

void CExtCheckComboBox::_OnDrawComboImpl(
    bool bPressed,
    bool bHover,
    CDC * pDC // = NULL
    )
{
    if( pDC != NULL && AnimationClient_StatePaint( *pDC ) )
        return;
CRect rcClient;
    GetClientRect( &rcClient );
bool bCallReleaseDC = false;
    if( pDC == NULL )
    {
        pDC = GetDC();
        ASSERT( pDC != NULL );
        bCallReleaseDC = true;
    }
DRAWITEMSTRUCT dis;
    ::memset( &dis, 0, sizeof( DRAWITEMSTRUCT ) );
    dis.CtlType = ODT_LISTBOX;
    dis.CtlID = GetDlgCtrlID();
    dis.itemID = UINT(-1);
    //dis.hDC = pDC->GetSafeHdc();
CRect rc( rcClient );
    rc.DeflateRect(
        3,
        3,
        3 + ::GetSystemMetrics( SM_CXVSCROLL ), // + PmBridge_GetPM()->GetDropDownButtonWidth(),
        3
        );
    ::CopyRect( &dis.rcItem, &rc );
    dis.itemAction = ODA_DRAWENTIRE;
    dis.hwndItem = GetSafeHwnd();
    if( ::GetFocus() == m_hWnd )
        dis.itemState |= ODS_FOCUS|ODS_SELECTED;
    { // block for memory dc
        CExtMemoryDC dc(
            pDC,
            &rcClient,
            CExtMemoryDC::MDCOPT_TO_MEMORY | CExtMemoryDC::MDCOPT_FILL_BITS | CExtMemoryDC::MDCOPT_RTL_COMPATIBILITY
            );
        dis.hDC = dc.GetSafeHdc();
        SendMessage( WM_DRAWITEM, (WPARAM)GetDlgCtrlID(), (LPARAM)&dis );
        CExtComboBox::_OnDrawComboImpl( bPressed, bHover, &dc );
    } // block for memory dc
    if( bCallReleaseDC )
        ReleaseDC( pDC );
}
The static value filter was designed for non-editable grid controls. Your grid control is programmaticaly editable. So, if you switch to dynamic value filters, the problem should be gone.

Alastair Watts Mar 17, 2011 - 5:14 AM

The header filter code you’ve posted is identical to the existing code (2.92)


My CExtCheckComboBox objects are owner draw = variable, has strings = true and they flicker when you move the mouse over them.  I have created a simple test dialog and they still flicker.

Technical Support Mar 17, 2011 - 9:55 AM

If you mean the ComboBoxTest test project you sent us - the combo boxes there are not owner draw and the CComboBoxTestDlg::DoCheck() method makes them behaving extremely slow. If you mean some new project, then please send it to us.

Alastair Watts Mar 17, 2011 - 4:58 AM

Thanks, you had me worried for a while there :)


 

Alastair Watts Mar 16, 2011 - 4:57 AM

I  hope they’re not experiencing problems, maybe they’re all working hard readying the next release!


The thought of having to move to another UI after 9 months of development is an unpleasant one to say the least :(


Come on technical support ... do your thing :)


 


 

Technical Support Mar 16, 2011 - 1:30 PM

We are sorry for the delays with this reply. The best fitting can be improved by implementing the following virtual method in theCExtGridCellHeaderFilter class:

    virtual INT OnCalcButtonExtent(
        INT nButtonType, // e_button_type_t
        const CExtGridWnd & wndGrid,
        CDC & dc,
        LONG nVisibleColNo,
        LONG nVisibleRowNo,
        LONG nColNo,
        LONG nRowNo,
        INT nColType,
        INT nRowType,
        DWORD dwAreaFlags,
        DWORD dwHelperPaintFlags
        ) const;

INT CExtGridCellHeaderFilter::OnCalcButtonExtent(
    INT nButtonType, // e_button_type_t
    const CExtGridWnd & wndGrid,
    CDC & dc,
    LONG nVisibleColNo,
    LONG nVisibleRowNo,
    LONG nColNo,
    LONG nRowNo,
    INT nColType,
    INT nRowType,
    DWORD dwAreaFlags,
    DWORD dwHelperPaintFlags
    ) const
{
    __EXT_DEBUG_GRID_ASSERT_VALID( this );
    if( ( dwHelperPaintFlags & __EGCPF_SIMPLIFIED_RENDERING_TARGET ) != 0 )
        return 0;
    if(        nButtonType == INT(__EBTT_DROPDOWN)
        &&    ( dwHelperPaintFlags & __EGCPF_REPORT_GROUP_AREA ) != 0
        )
        return 0;
INT nExtent = CExtGridCellHeader::OnCalcButtonExtent( nButtonType, wndGrid, dc, nVisibleColNo, nVisibleRowNo, nColNo, nRowNo, nColType, nRowType, dwAreaFlags, dwHelperPaintFlags );
    if(        nButtonType == INT(__EBTT_DROPDOWN)
        &&    nExtent > 0
        )
        nExtent += 6;
    return nExtent;
}
Please check the combo box dialog items in the dialog template resource editor for all the CExtCheckComboBox subclassed objects. Your combo boxes must be ownerdraw fixed or variable. They also should have the HasStrings option set on. This will guarantee all the flicker effects are gone.

Rado Manzela Mar 15, 2011 - 6:07 AM

I guess their sales are going down so they don’t want or cannot fix bugs as they used to :(

Jeroen Walter Mar 15, 2011 - 5:30 AM

Indeed, it looks like support hasn’t addressed any issues the last few days :(