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 » Drop-down menu and Internet Explorer 8 problem Collapse All
Subject Author Date
Jennifer Chong Nov 3, 2008 - 2:33 PM

Dear Support,


I have an application that is a toolbar add-on for Internet Explorer and is built with ProfUIS 2.5.3. 

The toolbar has a simple button with drop-down menu that works with IE6/IE7 browsers on XP and Vista

but appears to be broken with IE8 (beta 2).  On IE8, when the button is clicked, the drop-down menu appears,

then quickly disappears.


I have also built the toolbar with ProfUIS 2.8.3, but see the same issue.  Are there missing windows messages

that should be handled for IE8 within ProfUIS or application built with ProfUIS ?




The toolbar application code uses the CExtToolControlBar class and adds the button with menu like ProfUIS sample code -




 VERIFY(

  InsertButton( APPEND_BUTTON, ID_RSA_LOGO )

  );


 SetButtonImage(ID_RSA_LOGO, cLogoBitmap);


 INT nBtnIdx = CommandToIndex( ID_RSA_LOGO );

 //add a menu to the toolbar button

 ASSERT( nBtnIdx >= 0 );

 CMenu _menu;

 VERIFY(

  _menu.LoadMenu(

   IDR_TOOLBAR_TEMP_MENU

   )

  );

 VERIFY(

  SetButtonMenu(

   nBtnIdx,

   _menu.Detach(),

   TRUE,

   TRUE,

   TRUE

   )

  );

 CExtBarButton * pTBB = GetButton( nBtnIdx );

 ASSERT_VALID( pTBB );




 pTBB->SetAutoChangeID(true);

 pTBB->SetCmdID(ID_RSA_LOGO,false);




Thank you,

MKN

Technical Support Nov 4, 2008 - 9:02 AM

The CExtPopupMenuWnd class in Prof-UIS implements a window which looks and works like a popup menu. In fact, the menu tree on the screen is a tree like structure of CExtPopupMenuWnd-based window. All the instances of the CExtPopupMenuWnd class are always created dynamically and destroyed automatically. So, if the menu is closed, the CExtPopupMenuWnd object is deleted and its destructor is invoked. We would like to ask you to set a breakpoint to CExtPopupMenuWnd::~CExtPopupMenuWnd() destructor, start debugger and try to invoke you popup menu in IE8. It would be really helpful to take a look at the content of the Call Stack window when menu becomes destroyed. We suspect the WM_CANCELMODE or WM_WINDOWPOSCHANGED messages are somehow received by the popup menu window and call stack listing may clarify what really happens.