ColorableItem.GetColorData(Int32, UInt32) Método

Definição

Obtenha o elemento de primeiro plano ou plano de fundo de alta cor especificado.

public:
 virtual int GetColorData(int cdElement, [Runtime::InteropServices::Out] System::UInt32 % crColor);
 virtual int GetColorData(int cdElement, [Runtime::InteropServices::Out] unsigned int & crColor);
public virtual int GetColorData (int cdElement, out uint crColor);
abstract member GetColorData : int * uint32 -> int
override this.GetColorData : int * uint32 -> int
Public Overridable Function GetColorData (cdElement As Integer, ByRef crColor As UInteger) As Integer

Parâmetros

cdElement
Int32

no Um valor da __tagVSCOLORDATA enumeração que especifica qual elemento de cor deve ser recuperado.

crColor
UInt32

fora Retorna um COLORREF objeto que contém os valores RGB para o elemento Color especificado.

Retornos

Int32

Se bem-sucedido, retorna S_OK ; caso contrário, retorna um código de erro.

Implementações

Exemplos

Essa é uma implementação possível desse método (isso é semelhante à implementação base fornecida pela estrutura de pacote gerenciada).

using System.Drawing;  
using Microsoft.VisualStudio;  
using Microsoft.VisualStudio.TextManager.Interop;  

        public virtual int GetColorData(int cdElement, out uint crColor)  
        {  
            crColor = 0;  

            if (hiForeColor.IsEmpty || hiBackColor.IsEmpty)  
            {  
                return VSConstants.E_FAIL;  
            }  

            switch (cdElement)  
            {  
                case (int)__tagVSCOLORDATA.CD_FOREGROUND:  
                    crColor = ColorToRgb(this.hiForeColor);  
                    break;  
                case (int)__tagVSCOLORDATA.CD_BACKGROUND:  
                    crColor = ColorToRgb(this.hiBackColor);  
                    break;  
                default:  
                    return VSConstants.E_FAIL;  
            }  

            return VSConstants.S_OK;  
        }  

        uint ColorToRgb(Color color)  
        {  
             uint colorref = (uint)ColorTranslator.ToWin32(  
                                        Color.FromArgb(color.R,  
                                                       color.G,  
                                                       color.B));  
             return colorref;  
        }  

Comentários

Esse método é uma implementação do GetColorData método na IVsHiColorItem interface.

O método base retorna o elemento Color que foi passado para o construtor para o elemento de primeiro plano ( cdElement parâmetro = CD_FOREGROUND ) ou segundo plano ( cdElement parâmetro = CD_BACKGROUND ).

Aplica-se a