LE3 发表于 2010-9-8 11:53:43

CAcUiColorComboBox设置默认值?

如何设置CAcUiColorComboBox中的默认项目?
SetCurSel(item)似乎不起作用。
**** Hidden Message *****

LE3 发表于 2010-9-8 12:30:10

没有使用过该类,但看看CAcUiTrueColorComboBox是否有帮助(我的一些评论是西班牙语),看看在哪里阅读:CColorComboDlg dlg(NULL,nc,title);这里
HTH
static void ColorEnCelda(CString captionTitle, CXListCtrl *lst, int row, int column)
{
        CAcModuleResourceOverride res;
       
        AcCmColor nc;
        // extraer el texto en la celda para conocer que color es...
        CString s = lst->GetItemText(row,column);
        // antes revisar que tipo de color es
        int pos = -1;
        pos = s.Find(_T(",")); // primera coma - es color RGB ?
        if(pos != -1)
        {
                CString str = s.TrimLeft(_T(","));
                pos = str.Find(_T(",")); // segunda coma
        }
        if(pos != -1) // es RGB - #,#,#
        {
                // aqui el valor estara guardado en el formato RGB!
                CString resToken;
                int curPos = 0;
                std::vector vec;
                resToken = s.Tokenize(_T(","),curPos);
                while (resToken != "")
                {
                        vec.push_back(resToken);
                        resToken = s.Tokenize(_T(","),curPos);
                };
                Adesk::UInt8 red,green,blue;
                red                = _tstoi(vec);
                green        = _tstoi(vec);
                blue        = _tstoi(vec);
                vec.clear();
                nc.setRGB(red,green,blue);
        }
        else // es index color ?
        {
                AcGsColor color;
                color = AcadColors;
                ////AcCmColor nc;
                nc.setRGB(color.m_red,color.m_green,color.m_blue);
        }
        //AcGsColor color;
        //color = AcadColors;
        //AcCmColor nc;
        //nc.setRGB(color.m_red,color.m_green,color.m_blue);
        CString title = captionTitle + _T(" Seleccionar color");
        CColorComboDlg dlg(NULL,nc,title); // HERE
        ////--------------------------------------------------------------------------
        //// aqui es como definimos nuestro icono para la caja de dialogo
        //HINSTANCE hMyInstance;
        //// instancia a donde este cargada nuestra aplicacion
        //hMyInstance = acrxGetApp()->GetModuleInstance();
        //// cargamos nuestro icono, el cual dibujamos en el archivo de resources
        //HICON hMyIcon = LoadIcon(hMyInstance, MAKEINTRESOURCE(IDI_ICON1));
        //if (hMyIcon != NULL) dlg.SetDialogIcon(hMyIcon);
        ////--------------------------------------------------------------------------
        INT_PTR nResponse = dlg.DoModal();
        if (nResponse == IDOK)
        {
                CString css,s;
                css = dlg.m_RGB; // no use esta variable dejarla por si se requiere despues...!
                AcCmColor gcol;
                gcol = dlg.c;
                if (gcol.isByACI())
                {
                        AcGsColor col;
                        col = AcadColors;
                        // mostrar el color en el formato RGB
                        s.Format(_T("%d,%d,%d"),col.m_red,col.m_green,col.m_blue);
                        lst->SetItemText(row, column, s, RGB(0,0,0), RGB(col.m_red,col.m_green,col.m_blue));
                }
                else
                {
                        // mostrar el color en el formato RGB
                        s.Format(_T("%d,%d,%d"),gcol.red(),gcol.green(),gcol.blue());
                        lst->SetItemText(row, column, css, RGB(0,0,0), RGB(gcol.red(),gcol.green(),gcol.blue()));
                }
        }
        else if (nResponse == IDCANCEL) { }
}

LE3 发表于 2010-9-8 21:42:04

谢谢Luis,
我发现我需要调用AddItemToMRU,然后将当前选择设置为在MRU列表中显示。
我在这里有点作弊,使用CAcUiColorComboBox来显示我的图层代码1]

LE3 发表于 2010-9-8 22:33:29


是的。。。就是那个(是zip内部的一个电话),
组合框用法看起来不错!

LE3 发表于 2010-9-8 23:46:46

哈!你说得对

LE3 发表于 2010-9-11 07:35:08

我最终使用CComboBoxEx,警告,自带排序方法代码2]
页: [1]
查看完整版本: CAcUiColorComboBox设置默认值?