Comment utiliser les méthodes de tabulation dans TOM

L’exemple suivant fournit des fonctions C qui illustrent l’utilisation des méthodes d’onglet dans le modèle d’objet de texte (TOM). Il est supposé que la plupart des applications incluent une barre d’outils qui indique la position actuelle et le type des onglets pour le paragraphe actuellement sélectionné.

Bon à savoir

Technologies

Prérequis

  • C/C++
  • Windows Programmation de l’interface utilisateur

Instructions

Utiliser une méthode Tab

L’exemple de code suivant montre comment mettre à jour une barre d’outils avec les détails de l’onglet actuel.

HRESULT UpdateToolbar(ITextSelection *pSel)
{
    HRESULT hr       = S_OK;        
    ITextPara *pPara = 0;
    
    float f;
    long tbt;            // tab type
    long tbp;

    hr = pSel->GetPara(&pPara);
    
    if (FAILED(hr))
        goto cleanup;    // Paragraph properties are not supported
    
    f = (float) -1.0;    // Start at beginning
    
    while (pPara->GetTab(tbgoNext, &f, &tbt, NULL) == S_OK)
    {
            // Do something like draw tab icon on toolbar here
            // DrawTabPicture(f, tbt);
    }
    
cleanup:

    if (pPara)
        pPara->Release();
        
    return hr;
    
}

Copier les informations de l’onglet

L’exemple suivant montre comment copier uniquement les informations d’onglet d’une interface ITextPara vers une autre. Il accepte deux paramètres : ITextPara * pParaFrom (le paragraphe à partir duquel copier les tabulations) et ITextPara * pParaFrom (le paragraphe dans lequel copier les tabulations).

HRESULT CopyOnlyTabs(ITextPara *pParaFrom, ITextPara *pParaTo)
{
    float f;
    short tbt;
    short style;
     
    pParaTo->ClearAllTabs();
    
    f = (float) -1.0;
    
    while (pParaFrom->GetTab(tbgoNext, &f, &tbt, &style) == S_OK)
        pParaTo->AddTab(f, tbt, style);
        
    return S_OK;                
    
}

Utilisation du modèle d’objet de texte

Utilisation de contrôles RichEdit

Windows démonstration des contrôles communs (CppWindowsCommonControls)