写了一个颜色选择的自绘的combobox
想法是当点击combobox的按钮后弹出一个颜色选择的对话框(CColorDialog) 也就是说我这里用不上那个展开的下拉框
我在Cbn_Dropdown 里写的弹出的CColorDialog 但当dlg返回后 下拉框被展开 如何才能让他自动收回呢?以下是我尝试并失败的方式:
1. m_cbColor.SetCapture();
ReleaseCapture();2. m_cbColor.ShowDropDown(false);//这两种根本没效果 也许是因为写在OnCbnDropdown中 那时下拉框还没有展开3.::PostMessage(GetDlgItem(IDC_COMBO_COLOR)->GetSafeHwnd(),CB_SHOWDROPDOWN,0,0);
//这种方式倒是可以在视觉上关闭 但是 当我点击其他控件时 第一次没反应 第二次才有反应也就是说 虽然那个下拉框看不见了但它还是存在的 并且如果我加上CColorDialog的DoModal 焦点就会被锁死 无论我点哪都始终会执行OnCbnDropdown 因小问题而崩溃ing
想法是当点击combobox的按钮后弹出一个颜色选择的对话框(CColorDialog) 也就是说我这里用不上那个展开的下拉框
我在Cbn_Dropdown 里写的弹出的CColorDialog 但当dlg返回后 下拉框被展开 如何才能让他自动收回呢?以下是我尝试并失败的方式:
1. m_cbColor.SetCapture();
ReleaseCapture();2. m_cbColor.ShowDropDown(false);//这两种根本没效果 也许是因为写在OnCbnDropdown中 那时下拉框还没有展开3.::PostMessage(GetDlgItem(IDC_COMBO_COLOR)->GetSafeHwnd(),CB_SHOWDROPDOWN,0,0);
//这种方式倒是可以在视觉上关闭 但是 当我点击其他控件时 第一次没反应 第二次才有反应也就是说 虽然那个下拉框看不见了但它还是存在的 并且如果我加上CColorDialog的DoModal 焦点就会被锁死 无论我点哪都始终会执行OnCbnDropdown 因小问题而崩溃ing
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货