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 » Bug in 2.84 (OnPgcInputComplete) Collapse All
Subject Author Date
Ashley Gullen Jan 7, 2009 - 4:39 PM

Hi,


We recently upgraded from Prof-UIS 2.83 to 2.84.  There appears to be a bug.  When you change a combo box item in a property grid (CExtGridCellDropListComboBox), CExtPropertyGridCtrl::OnPgcInputComplete is not called.  This has broken all combo box items in the property grid in our application.  This code was calling & working fine in 2.83.


Any chance of a workaround or fix here?

Technical Support Jan 8, 2009 - 10:12 AM

Thank you for reporting the bug. Here is the bug fix:

bool CExtGridCellComboBox::OnPopupListBoxSelEndOK(
            CExtPopupInplaceListBox & wndListBox,
            CExtGridCell::TrackCellStateInfo_t & _tcsi
            )
{
            ASSERT_VALID( this );
            ASSERT( (&_tcsi.m_cell) == this );
            ASSERT_VALID( (&wndListBox) );
            ASSERT_VALID( (&_tcsi.m_wndGrid) );
            _tcsi.m_nItemNoSelEndOK = wndListBox.GetCurSel();
            _tcsi.m_bHelperSelChanged = true;
            if( (wndListBox.GetStyle()&LBS_HASSTRINGS) != 0 )
            {
                        LONG nItemCount = wndListBox.GetCount();
                        if( nItemCount > 0L )
                        {
                                    LONG nCurSel = wndListBox.GetCurSel();
                                    if( 0L <= nCurSel && nCurSel < nItemCount )
                                    {
                                                SetCurSel( nCurSel );
                                                CString strSelLbText;
                                                wndListBox.GetText( nCurSel, strSelLbText );
                                                DWORD dwStyleEx = GetStyleEx();
                                                bool bDoNotSendSelEndOkOnEqualText = ( ( dwStyleEx & __EGCS_EX_DO_NOT_NOTIFY_LB_SEL_FOR_EQUAL_TEXT ) != 0 ) ? true : false;
                                                if( bDoNotSendSelEndOkOnEqualText )
                                                {
                                                            CExtSafeString strCurrentText;
                                                            TextGet( strCurrentText );
                                                            if( strCurrentText == LPCTSTR(strSelLbText) )
                                                                        return false;
                                                }
                                                TextSet( LPCTSTR(strSelLbText) );
                                                _tcsi.m_wndGrid.OnGridCellInputComplete( *this, _tcsi.m_nColNo, _tcsi.m_nRowNo, _tcsi.m_nColType, _tcsi.m_nRowType, wndListBox.GetSafeHwnd() );
                                    } // if( 0L <= nCurSel && nCurSel < nItemCount )
                        } // if( nItemCount > 0L )
            } // if( (wndListBox.GetStyle()&LBS_HASSTRINGS) != 0 )
            return false;
}
We are sorry for the inconvenience.