Disappearing ComboBox on toolbar
Harry Hahne -- hahne@epas.utoronto.ca Thursday, June 20, 1996 VC++ 4.1, Win 95 I am using a toolbar on a MDI window. I want to use a ComboBox on the toolbar. I have successfully created the ComboBox. What I am having trouble with is adjusting the width of the ComboBox to adjust itself to fit in the Window, when the Window is resized. The problem is, when the window is resized, the ComboBox appears briefly and then disappears. If I change to another program and then return to my program, the ComboBox appears again. In the OnCreate function of my view class (derived from CScrollView) I do the following to create the ComboBox: m_pParentFrame->RecToolBar.SetButtonInfo(5, ID_BROWSE_FLD, TBBS_SEPARATOR, 100); CRect rect; m_pParentFrame->RecToolBar.GetItemRect(5, &rect); rect.top = 3; rect.bottom = rect.top + 100; if (!m_pParentFrame->m_ComboBox.Create(CBS_DROPDOWNLIST | WS_VISIBLE, rect, m_pParentFrame, ID_BROWSE_FLD)) { return FALSE; } This appears to create the ComboBox just fine. I store the ComboBox object in the MDI frame class, so it does not have to be recreated when I change the view. Then in the OnSize() function of the view class, I am adjusting the size of the ComboBox after the normal CScrollView::OnSize() is called: m_pParentFrame->m_ComboBox.MoveWindow(left,top,width,height); Any suggestions about what is going wrong? Harry Hahne hahne@chass.utoronto.ca
Greg D. Tighe -- gdt@eng.aisinc.com Monday, June 24, 1996 > The problem is, when the window is resized, the ComboBox appears briefly and > then disappears. If I change to another program and then return to my > program, the ComboBox appears again. > ... > > Then in the OnSize() function of the view class, I am adjusting the size of > the ComboBox after the normal CScrollView::OnSize() is called: > > m_pParentFrame->m_ComboBox.MoveWindow(left,top,width,height); > > Any suggestions about what is going wrong? > Try using SetWindowPos() instead of MoveWindow(): m_pParentFrame->m_ComboBox.SetWindowPos (&wndTop, left,top,width,height, SWP_SHOWWINDOW); This will resize your combobox *and* set it to the top of the Z-order so it should get drawn on top of all the other controls which make up your toolbar. -Greg Tighe Applied Intelligent Systems, Inc. Ann Arbor, MI gdt@aisinc.com
| Вернуться в корень Архива |