- 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[0]);
- green = _tstoi(vec[1]);
- blue = _tstoi(vec[2]);
- vec.clear();
- nc.setRGB(red,green,blue);
- }
- else // es index color ?
- {
- AcGsColor color;
- color = AcadColors[_tstoi(s)];
- ////AcCmColor nc;
- nc.setRGB(color.m_red,color.m_green,color.m_blue);
- }
- //AcGsColor color;
- //color = AcadColors[8];
- //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[gcol.colorIndex()];
- // 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) { }
- }