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 » CExtComboBox control of Type Simple now leads to crash with ProfUIS281 Collapse All
Subject Author Date
marc uchida Nov 1, 2007 - 12:58 PM

I have a dialog (CExtResizableDialog ) with a combo box control in it (CExtComboBox) that has its property for Type set to "Simple". This worked fine with ProfUIS 262, but now causes a crash upon DoModal() since I upgraded to 281. If I change the type to "Dropdown" or "DropList" it works fine in 281. The "Simple" type will also work if I shrink the combo box control in the dialog to have only the name part and NOT have the list part
(ie. height of only 1 line) . There appears to be something wrong with the creation of the list contents part of the Simple type combobox.
thanks for any help.

Technical Support Dec 6, 2007 - 8:01 AM

We still unable to reproduce the assertion failure but we can offer the following workaround that fixes this problem:

LRESULT CExtComboBoxBase::OnCtlColor( WPARAM wParam, LPARAM lParam )
{
      ASSERT_VALID( this );
      wParam;
bool bSimpleMode = false;
DWORD dwStyle = GetStyle();
      if(         (dwStyle&CBS_SIMPLE) == CBS_SIMPLE 
            &&    (dwStyle&CBS_DROPDOWN) != CBS_DROPDOWN
            &&    (dwStyle&CBS_DROPDOWNLIST) != CBS_DROPDOWNLIST 
            )
            bSimpleMode = true;
      if(         (!bSimpleMode)
            &&    m_wndPopupListBox.m_hWnd == NULL 
            &&    lParam != 0L 
            &&    lParam != (LPARAM)m_hWnd
            &&    FromHandlePermanent( (HWND)lParam ) == NULL
            )
            m_wndPopupListBox.SubclassWindow( (HWND)lParam ); 
      return Default();
}

marc uchida Dec 5, 2007 - 11:17 AM

ProfUIS 282 was made available to us for download. It fixes the problem. I guess you will have to contact support regarding this, if it is not available at their usual download locations.
cheers

David Heitbrink Dec 5, 2007 - 10:08 AM

I am getting almost this same exact error with damn near the same call stack as the one posted here. Has there been any resolution to this? This first happened when I when I went from v2.81 from v2.80.

Technical Support Nov 7, 2007 - 11:06 AM

We confirm that this bug presents in v.2.81. Sorry for not being able to reproduce it at once. We made some refactoring of the combo box these days so now it cannot be reproduced. Would you try the latest source code available from our ftp site? You can request the password for ftp by email at support@prof-uis.com.

Bob Sabiston Nov 7, 2007 - 10:14 AM

Hmm, something is odd. Just to make sure we are comparing the same thing, our platform is Visual Studio 7.1 (.NET 2003) and we are using the Unicode DLL (ProfUIS282u.dll).

I’ve confirmed that the FunnyBar example crashes with the change described (I changed the RC file directly instead of through the resource editor and with the exception of changing CBS_DROPDOWNLIST to CBS_SIMPLE, there was no other change to the rc file). In debug versions, the callStack is essentially the same in FunnyBars as what Marc described in our application. In release versions, it just exits the program. I also checked with the ANSI release build with the same results.

Technical Support Nov 7, 2007 - 8:40 AM

Bob, we do not know how you managed to reproduce the bug but we failed to repeat the same using v.2.81. Replacing CBS_DROPDOWNLIST with CBS_SIMPLE for IDC_COMBO_FONT_FACE_NAME does not help. We can still compile and run FunnyBars successfully. It is really weird. So some test project that reproduces the problem would be really helpful.

Bob Sabiston Nov 6, 2007 - 6:00 PM

I am able to reproduce this bug in the FunnyBars example simply by changing the type of IDC_COMBO_FONT_FACE_NAME to CBS_SIMPLE (i.e. just replace CBS_DROPDOWNLIST with CBS_SIMPLE in that RC file and rebuild FunnyBars) You get the same behavior as Marc indicated.

Technical Support Nov 6, 2007 - 1:03 PM

This ASSERT message says that the list box is already subclassed with some other class. Let us know if you you did this in your project?

marc uchida Nov 5, 2007 - 6:47 PM

Call stack as requested.....
If this does nothing for you let me know, I’ll see about creating a test project then.
thanks, marc.

    ntdll.dll!7c901230()     
>    msvcr71d.dll!_CrtDbgBreak() Line 93    C
    msvcr71d.dll!_CrtDbgReport(int nRptType=2, const char * szFile=0x7c254f18, int nLine=331, const char * szModule=0x00000000, const char * szFormat=0x00000000, ...) Line 427    C
    mfc71ud.dll!AfxAssertFailedLine(const char * lpszFileName=0x7c254f18, int nLine=331) Line 28 + 0x14    C++
    mfc71ud.dll!CWnd::Attach(HWND__ * hWndNew=0x000109a2) Line 331 + 0x1c    C++
    mfc71ud.dll!CWnd::SubclassWindow(HWND__ * hWnd=0x000109a2) Line 4882 + 0xc    C++
    ProfUIS281ud.dll!CExtComboBoxBase::OnCtlColor(unsigned int wParam=4076929985, long lParam=68002) Line 1752    C++
    mfc71ud.dll!CWnd::OnWndMsg(unsigned int message=308, unsigned int wParam=4076929985, long lParam=68002, long * pResult=0x00128dd0) Line 2013 + 0x11    C++
    mfc71ud.dll!CWnd::WindowProc(unsigned int message=308, unsigned int wParam=4076929985, long lParam=68002) Line 1745 + 0x1e    C++
    ProfUIS281ud.dll!CExtComboBoxBase::WindowProc(unsigned int message=308, unsigned int wParam=4076929985, long lParam=68002) Line 1960    C++
    ProfUIS281ud.dll!CExtComboBox::WindowProc(unsigned int message=308, unsigned int wParam=4076929985, long lParam=68002) Line 3413    C++
    mfc71ud.dll!AfxCallWndProc(CWnd * pWnd=0x0012ed80, HWND__ * hWnd=0x000109a0, unsigned int nMsg=308, unsigned int wParam=4076929985, long lParam=68002) Line 241 + 0x1a    C++
    mfc71ud.dll!AfxWndProc(HWND__ * hWnd=0x000109a0, unsigned int nMsg=308, unsigned int wParam=4076929985, long lParam=68002) Line 389    C++
    mfc71ud.dll!AfxWndProcBase(HWND__ * hWnd=0x000109a0, unsigned int nMsg=308, unsigned int wParam=4076929985, long lParam=68002) Line 209 + 0x15    C++
    user32.dll!7e418734()     
    user32.dll!7e418816()     
    user32.dll!7e41b4c0()     
    user32.dll!7e41b50c()     
    ntdll.dll!7c90eae3()     
    user32.dll!7e431b28()     
    user32.dll!7e43540c()     
    user32.dll!7e43331f()     
    user32.dll!7e418734()     
    user32.dll!7e418816()     
    user32.dll!7e41c63f()     
    user32.dll!7e41c665()     
    mfc71ud.dll!CWnd::DefWindowProcW(unsigned int nMsg=20, unsigned int wParam=4076929985, long lParam=0) Line 1024 + 0x20    C++
    mfc71ud.dll!CWnd::WindowProc(unsigned int message=20, unsigned int wParam=4076929985, long lParam=0) Line 1746 + 0x1a    C++
    ProfUIS281ud.dll!CExtEditBase::WindowProc(unsigned int message=20, unsigned int wParam=4076929985, long lParam=0) Line 388 + 0x14    C++
    ProfUIS281ud.dll!CExtComboEditCtrlHook::WindowProc(unsigned int message=20, unsigned int wParam=4076929985, long lParam=0) Line 909    C++
    mfc71ud.dll!AfxCallWndProc(CWnd * pWnd=0x0012ee88, HWND__ * hWnd=0x000109a2, unsigned int nMsg=20, unsigned int wParam=4076929985, long lParam=0) Line 241 + 0x1a    C++
    mfc71ud.dll!AfxWndProc(HWND__ * hWnd=0x000109a2, unsigned int nMsg=20, unsigned int wParam=4076929985, long lParam=0) Line 389    C++
    mfc71ud.dll!AfxWndProcBase(HWND__ * hWnd=0x000109a2, unsigned int nMsg=20, unsigned int wParam=4076929985, long lParam=0) Line 209 + 0x15    C++
    user32.dll!7e418734()     
    user32.dll!7e418816()     
    user32.dll!7e41b4c0()     
    user32.dll!7e41b50c()     
    ntdll.dll!7c90eae3()     
    user32.dll!7e41b615()     
    user32.dll!7e43542b()     
    user32.dll!7e43331f()     
    user32.dll!7e418734()     
    user32.dll!7e418816()     
    user32.dll!7e41c63f()     
    user32.dll!7e41c665()     
    mfc71ud.dll!CWnd::DefWindowProcW(unsigned int nMsg=15, unsigned int wParam=0, long lParam=0) Line 1024 + 0x20    C++
    mfc71ud.dll!CWnd::WindowProc(unsigned int message=15, unsigned int wParam=0, long lParam=0) Line 1746 + 0x1a    C++
    ProfUIS281ud.dll!CExtEditBase::WindowProc(unsigned int message=15, unsigned int wParam=0, long lParam=0) Line 388 + 0x14    C++
    ProfUIS281ud.dll!CExtComboEditCtrlHook::WindowProc(unsigned int message=15, unsigned int wParam=0, long lParam=0) Line 909    C++
    mfc71ud.dll!AfxCallWndProc(CWnd * pWnd=0x0012ee88, HWND__ * hWnd=0x000109a2, unsigned int nMsg=15, unsigned int wParam=0, long lParam=0) Line 241 + 0x1a    C++
    mfc71ud.dll!AfxWndProc(HWND__ * hWnd=0x000109a2, unsigned int nMsg=15, unsigned int wParam=0, long lParam=0) Line 389    C++
    mfc71ud.dll!AfxWndProcBase(HWND__ * hWnd=0x000109a2, unsigned int nMsg=15, unsigned int wParam=0, long lParam=0) Line 209 + 0x15    C++
    user32.dll!7e418734()     
    user32.dll!7e418816()     
    user32.dll!7e41b4c0()     
    user32.dll!7e41b50c()     
    ntdll.dll!7c90eae3()     
    user32.dll!7e4194d2()     
    user32.dll!7e41b530()     
    user32.dll!7e4185a4()     
    user32.dll!7e42d950()     
    user32.dll!7e418a10()     
    user32.dll!7e42dbbf()     
    user32.dll!7e42593f()     
    user32.dll!7e43a91e()     
    fbclient.dll!036dfa16()     
    ntdll.dll!7c949b34()     
    ntdll.dll!7c926a44()     
    ntdll.dll!7c926abe()     
    ntdll.dll!7c9131dc()     
    ntdll.dll!7c913281()     
    ntdll.dll!7c913288()     
    ntdll.dll!7c913288()     
    ntdll.dll!7c916315()     
    ntdll.dll!7c91b686()     
    ntdll.dll!7c91b298()     
    ntdll.dll!7c9106eb()     
    ntdll.dll!7c96e0f0()     
    ntdll.dll!7c96e0d4()     
    user32.dll!7e4184fc()     
    user32.dll!7e41ba0e()     
    user32.dll!7e41b96b()     
    user32.dll!7e43a284()     
    ntdll.dll!7c910945()     
    ntdll.dll!7c91094e()     
    ntdll.dll!7c926abe()     
    ntdll.dll!7c91440e()     
    ntdll.dll!7c910970()     
    ntdll.dll!7c914481()     
    ntdll.dll!7c919bd3()     
    ntdll.dll!7c910895()     
    ntdll.dll!7c919a9c()     
    ntdll.dll!7c919b3f()     
    ntdll.dll!7c919aeb()     
    user32.dll!7e4661d3()     
    user32.dll!7e466278()     
    user32.dll!7e450617()     
    user32.dll!7e4505cf()     
    msvcr71d.dll!__crtMessageBoxA(const char * lpText=0x0012a02c, const char * lpCaption=0x10268444, unsigned int uType=73746) Line 119    C
    msvcr71d.dll!CrtMessageWindow(int nRptType=2, const char * szFile=0x7c254f18, const char * szLine=0x0012b070, const char * szModule=0x00000000, const char * szUserMessage=0x0012b090) Line 617 + 0x16    C
    msvcr71d.dll!_CrtDbgReport(int nRptType=2, const char * szFile=0x7c254f18, int nLine=331, const char * szModule=0x00000000, const char * szFormat=0x00000000, ...) Line 516 + 0x4c    C
    mfc71ud.dll!AfxAssertFailedLine(const char * lpszFileName=0x7c254f18, int nLine=331) Line 28 + 0x14    C++
    mfc71ud.dll!CWnd::Attach(HWND__ * hWndNew=0x000109a2) Line 331 + 0x1c    C++
    mfc71ud.dll!CWnd::SubclassWindow(HWND__ * hWnd=0x000109a2) Line 4882 + 0xc    C++
    ProfUIS281ud.dll!CExtComboBoxBase::OnCtlColor(unsigned int wParam=4076931886, long lParam=68002) Line 1752    C++
    mfc71ud.dll!CWnd::OnWndMsg(unsigned int message=308, unsigned int wParam=4076931886, long lParam=68002, long * pResult=0x0012e274) Line 2013 + 0x11    C++
    mfc71ud.dll!CWnd::WindowProc(unsigned int message=308, unsigned int wParam=4076931886, long lParam=68002) Line 1745 + 0x1e    C++
    ProfUIS281ud.dll!CExtComboBoxBase::WindowProc(unsigned int message=308, unsigned int wParam=4076931886, long lParam=68002) Line 1960    C++
    ProfUIS281ud.dll!CExtComboBox::WindowProc(unsigned int message=308, unsigned int wParam=4076931886, long lParam=68002) Line 3413    C++
    mfc71ud.dll!AfxCallWndProc(CWnd * pWnd=0x0012ed80, HWND__ * hWnd=0x000109a0, unsigned int nMsg=308, unsigned int wParam=4076931886, long lParam=68002) Line 241 + 0x1a    C++
    mfc71ud.dll!AfxWndProc(HWND__ * hWnd=0x000109a0, unsigned int nMsg=308, unsigned int wParam=4076931886, long lParam=68002) Line 389    C++
    mfc71ud.dll!AfxWndProcBase(HWND__ * hWnd=0x000109a0, unsigned int nMsg=308, unsigned int wParam=4076931886, long lParam=68002) Line 209 + 0x15    C++
    user32.dll!7e418734()     
    user32.dll!7e418816()     
    user32.dll!7e41b4c0()     
    user32.dll!7e41b50c()     
    ntdll.dll!7c90eae3()     
    user32.dll!7e425f1c()     
    user32.dll!7e450457()     
    user32.dll!7e452de4()     
    user32.dll!7e41b51c()     
    ntdll.dll!7c90eae3()     
    user32.dll!7e43544b()     
    user32.dll!7e43331f()     
    user32.dll!7e418734()     
    user32.dll!7e418816()     
    user32.dll!7e41c63f()     
    user32.dll!7e41c665()     
    mfc71ud.dll!CWnd::DefWindowProcW(unsigned int nMsg=15, unsigned int wParam=0, long lParam=0) Line 1024 + 0x20    C++
    mfc71ud.dll!CWnd::WindowProc(unsigned int message=15, unsigned int wParam=0, long lParam=0) Line 1746 + 0x1a    C++
    ProfUIS281ud.dll!CExtEditBase::WindowProc(unsigned int message=15, unsigned int wParam=0, long lParam=0) Line 388 + 0x14    C++
    ProfUIS281ud.dll!CExtComboEditCtrlHook::WindowProc(unsigned int message=15, unsigned int wParam=0, long lParam=0) Line 909    C++
    mfc71ud.dll!AfxCallWndProc(CWnd * pWnd=0x0012ee88, HWND__ * hWnd=0x000109a2, unsigned int nMsg=15, unsigned int wParam=0, long lParam=0) Line 241 + 0x1a    C++
    mfc71ud.dll!AfxWndProc(HWND__ * hWnd=0x000109a2, unsigned int nMsg=15, unsigned int wParam=0, long lParam=0) Line 389    C++
    mfc71ud.dll!AfxWndProcBase(HWND__ * hWnd=0x000109a2, unsigned int nMsg=15, unsigned int wParam=0, long lParam=0) Line 209 + 0x15    C++
    user32.dll!7e418734()     
    user32.dll!7e418816()     
    user32.dll!7e41b4c0()     
    user32.dll!7e41b50c()     
    ntdll.dll!7c90eae3()     
    user32.dll!7e41d83f()     
    user32.dll!7e41d82a()     
    mfc71ud.dll!CWnd::UpdateWindow() Line 127 + 0x36    C++
    mfc71ud.dll!CWnd::RunModalLoop(unsigned long dwFlags=4) Line 4543    C++
    ProfUIS281ud.dll!CExtResDlg::_DoModalImpl() Line 6086 + 0xc    C++
    ProfUIS281ud.dll!CExtResDlg::DoModal() Line 6030 + 0x10    C++

Technical Support Nov 5, 2007 - 11:34 AM

We tried to reproduce the problem but failed. Would you send us a call stack when the problem occurs? Of course if you send us a small test project, this would allow us to help you much faster.