Kontrol Font

Untuk menyederhanakan integrasi dan konfigurasi dukungan font dalam aplikasi yang memerlukan kemampuan pemrosesan kata dan pengeditan teks, kerangka kerja Windows Ribbon menyediakan Kontrol Font khusus yang mengekspos berbagai properti font seperti nama typeface, gaya, ukuran titik, dan efek.

Pengantar

Kontrol Font adalah kontrol komposit yang terdiri dari tombol, tombol alih, kotak daftar drop-down, dan kotak kombo, yang semuanya digunakan untuk menentukan properti font atau opsi pemformatan tertentu.

Cuplikan layar berikut ini memperlihatkan Kontrol Font Pita di WordPad untuk Windows 7.

cuplikan layar elemen fontcontrol dengan atribut richfont diatur ke true.

Pengalaman yang Konsisten

Sebagai kontrol Pita bawaan, Kontrol Font meningkatkan manajemen font, fungsionalitas pemilihan, dan pemformatan secara keseluruhan, dan memberikan pengalaman pengguna yang kaya dan konsisten di semua aplikasi Pita.

Pengalaman yang konsisten ini mencakup

  • Pemformatan standar dan pilihan font di seluruh aplikasi Pita.

  • Representasi font standar di seluruh aplikasi Pita.

  • Otomatis, di Windows 7, aktivasi font yang didasarkan pada pengaturan Perlihatkan atau Sembunyikan untuk setiap font di panel kontrol Font . Kontrol Font hanya menampilkan font yang diatur ke Perlihatkan.

    Catatan

    Di Windows Vista, panel kontrol Font tidak menawarkan fungsionalitas Perlihatkan atau Sembunyikan , sehingga semua font diaktifkan.

  • Manajemen font yang tersedia langsung dari kontrol.

    Cuplikan layar berikut menunjukkan bahwa panel kontrol Font dapat diakses langsung dari Kontrol Font.

    cuplikan layar daftar keluarga font di wordpad untuk windows 7.

  • Dukungan untuk pratinjau otomatis.

  • Paparan font yang paling relevan bagi pengguna, seperti

    • Daftar font yang dilokalkan untuk pengguna internasional.
    • Daftar font berdasarkan perangkat input.

    Catatan

    Dukungan untuk fungsionalitas ini tidak tersedia pada platform apa pun yang lebih lama dari Windows 7.

Integrasi dan Konfigurasi yang Mudah

Dengan menyediakan fungsionalitas standar, dapat digunakan kembali, dan mudah dikonsumsi, Kontrol Font Pita meringankan beban mengintegrasikan dukungan font ke dalam aplikasi.

Detail pemilihan dan pemformatan font dibungkus dalam satu elemen logika mandiri yang

  • Menghilangkan manajemen kompleks interdependensi kontrol yang khas dari implementasi kontrol font.
  • Memerlukan satu handler Perintah untuk semua fungsionalitas yang diekspos oleh sub-kontrol Kontrol Font.

Handler Perintah tunggal ini memungkinkan Kontrol Font untuk mengelola fungsionalitas berbagai sub-kontrol secara internal; sub-kontrol tidak pernah berinteraksi langsung dengan aplikasi, terlepas dari fungsinya.

Fitur lain dari Kontrol Font termasuk

  • Otomatis, generasi sadar DPI dari representasi bitmap WYSIWYG (apa yang Anda lihat adalah apa yang Anda dapatkan) untuk setiap font di menu keluarga Font .

  • Integrasi Windows Graphics Device Interface (GDI ).

  • Bitmap dan tipsalat keluarga font yang dilokalkan.

  • Enumerasi, pengelompokan, dan metadata font untuk mengelola dan menyajikan font.

    Catatan

    Dukungan untuk fungsionalitas ini tidak tersedia pada platform apa pun yang lebih lama dari Windows 7 .

  • Pemilih warna Teks dan warna sorotan teks berwarna turun bawah yang mencerminkan perilaku Pemilih Warna Turun Bawah Pita.

  • Dukungan pratinjau otomatis oleh semua subkontrol berbasis galeri Kontrol Font: Keluarga font, Ukuran font, Warna teks, dan Warna sorotan teks.

Perataan dengan Struktur Teks GDI Umum

Komponen tumpukan teks Windows Graphics Device Interface (GDI) digunakan untuk mengekspos fungsionalitas pemilihan font dan pemformatan melalui Kontrol Font Pita. Berbagai fitur font yang didukung oleh Struktur LOGFONT, Struktur CHOOSEFONT, dan Struktur CHARFORMAT2 diekspos melalui sub-kontrol yang disertakan dalam Kontrol Font.

Subkontrol yang ditampilkan dalam Kontrol Font bergantung pada templat FontType yang dideklarasikan dalam markup Pita. Templat FontType (dibahas secara lebih rinci di bagian berikut) dirancang untuk menyelaraskan dengan struktur teks Windows Graphics Device Interface (GDI) umum.

Menambahkan FontControl

Bagian ini menguraikan langkah-langkah dasar untuk menambahkan Kontrol Font ke aplikasi Pita.

Mendeklarasikan FontControl dalam Markup

Seperti kontrol Pita lainnya, Kontrol Font dinyatakan dalam markup dengan elemen FontControl dan terkait dengan deklarasi Perintah melalui ID Perintah. Ketika aplikasi dikompilasi, ID Perintah digunakan untuk mengikat Perintah ke handler Perintah di aplikasi host.

Catatan

Jika tidak ada ID Perintah yang dideklarasikan dengan FontControl dalam markup, maka satu akan dihasilkan oleh kerangka kerja.

Karena sub-kontrol Kontrol Font tidak diekspos secara langsung, kustomisasi Kontrol Font dibatasi hingga tiga templat tata letak FontType yang ditentukan oleh kerangka kerja.

Kustomisasi lebih lanjut dari Kontrol Font dapat dicapai dengan menggabungkan templat tata letak dengan atribut FontControl seperti IsHighlightButtonVisible, IsStrikethroughButtonVisible, dan IsUnderlineButtonVisible.

Catatan

Fungsionalitas font di luar yang diekspos oleh templat dan atribut Kontrol Font standar memerlukan implementasi kontrol font kustom yang berada di luar lingkup artikel ini.

Tabel berikut ini mencantumkan templat Kontrol Font dan tipe kontrol edit yang diratakan dengan setiap templat.

Templat Dukungan
FontOnly Struktur LOGFONT
FontWithColor STRUKTUR CHOOSEFONT
RichFont Struktur CHARFORMAT2

Tabel berikut ini mencantumkan kontrol yang terkait dengan setiap templat dan mengidentifikasi kontrol yang opsional untuk templat terkait.

Kontrol

Templat

RichFont

FontWithColor

FontOnly

Default

Opsional

Default

Opsional

Default

Opsional

Kotak kombo ukuran font

Ya

Tidak

Ya

Tidak

Ya

Tidak

Kotak kombo keluarga font

Ya

Tidak

Ya

Tidak

Ya

Tidak

Tombol perkembang font

Ya

Ya

Ya

Ya

-

-

Tombol susutkan font

Ya

Ya

Ya

Ya

-

-

Tombol Tebal

Ya

Tidak

Ya

Tidak

Ya

Tidak

Tombol miring

Ya

Tidak

Ya

Tidak

Ya

Tidak

Tombol garis bawah

Ya

Tidak

Ya

Ya

Ya

Ya

Tombol Coret

Ya

Tidak

Ya

Ya

Ya

Ya

Tombol subskrip

Ya

Tidak

-

-

-

-

Tombol superskrip

Ya

Tidak

-

-

-

-

Tombol warna sorotan teks

Ya

Tidak

Ya

Ya

-

-

Tombol warna teks

Ya

Tidak

Ya

Tidak

-

-

Saat perilaku tata letak Kontrol Font dideklarasikan, kerangka kerja Pita menyediakan templat tata letak SizeDefinition opsional, OneFontControl, yang menentukan dua konfigurasi sub-kontrol berdasarkan ukuran Pita dan ruang yang tersedia untuk Kontrol Font. Untuk informasi selengkapnya, lihat Menyesuaikan Pita Melalui Definisi Ukuran dan Kebijakan Penskalaan.

Menambahkan FontControl ke Pita

Contoh kode berikut menunjukkan persyaratan markup dasar untuk menambahkan Kontrol Font ke Pita:

Bagian kode ini memperlihatkan markup deklarasi Perintah FontControl , termasuk Perintah Tab dan Grup yang diperlukan untuk menampilkan kontrol di Pita.

<Command Name="cmdTab1"
  Comment="These comments are optional and are inserted into the header file."
  Symbol="cmdTab1" Id="10000" >
  <Command.LabelTitle>Tab 1</Command.LabelTitle>
</Command>
<Command Name="cmdGroup1" Comment="Group #1" Symbol="cmdGroup1" Id="20000">
  <!-- This image is used when the group scales to a pop-up. -->
  <Command.SmallImages>
    <Image>res/Button_Image.bmp</Image>
  </Command.SmallImages>
</Command>
<Command Name="cmdFontControl" Symbol="cmdFontControl" Comment="FontControl" Id="25001" Keytip="F" />

Bagian kode ini menunjukkan markup yang diperlukan untuk mendeklarasikan dan mengaitkan FontControl dengan Perintah melalui ID Perintah. Contoh khusus ini mencakup deklarasi Tab dan Grup , dengan preferensi penskalaan.

<Ribbon.Tabs>
  <Tab CommandName="cmdTab1">
    <Tab.ScalingPolicy>
      <ScalingPolicy>
        <ScalingPolicy.IdealSizes>
          <Scale Group="cmdGroup1" Size="Large" />
        </ScalingPolicy.IdealSizes>
        <!-- Describe how the FontControl group scales. -->
        <Scale Group="cmdGroup1" Size="Medium" />
        <Scale Group="cmdGroup1" Size="Popup" />
      </ScalingPolicy>
    <Group CommandName="cmdGroup1" SizeDefinition="OneFontControl">
      <FontControl CommandName="cmdFontControl" FontType="RichFont" />
    </Group>
  </Tab>
</Ribbon.Tabs>

Menambahkan FontControl ke ContextPopup

Menambahkan Kontrol Font ke Popup Konteks memerlukan prosedur yang mirip dengan menambahkan Kontrol Font ke Pita. Namun, Kontrol Font di MiniToolbar dibatasi untuk kumpulan sub-kontrol default yang umum untuk semua templat Kontrol Font: Keluarga font, Ukuran font, Tebal, dan Miring.

Contoh kode berikut menunjukkan persyaratan markup dasar untuk menambahkan Kontrol Font ke Popup Konteks:

Bagian kode ini memperlihatkan markup deklarasi Perintah FontControl yang diperlukan untuk menampilkan FontControl di ContextPopup.

<Command Name="cmdFontControl" Symbol="cmdFontControl" Comment="FontControl" Id="25001" />

Bagian kode ini menunjukkan markup yang diperlukan untuk mendeklarasikan dan mengaitkan FontControl dengan Perintah melalui ID Perintah.

<ContextPopup.MiniToolbars>
  <MiniToolBar Name="MiniToolbar1">
    <MenuCategory Class="StandardItems">
      <FontControl CommandName="cmdFontControl" />
    </MenuCategory>
  </MiniToolBar>
</ContextPopup.MiniToolbars>

Tipsalat kunci

Setiap sub-kontrol dalam Kontrol Font Pita dapat diakses melalui pintasan keyboard, atau tip tombol. Tips kunci ini telah ditentukan sebelumnya dan ditetapkan ke setiap sub-kontrol oleh kerangka kerja.

Jika nilai atribut Keytip ditetapkan ke elemen FontControl dalam markup, nilai ini ditambahkan sebagai awalan ke keytip yang ditentukan kerangka kerja.

Catatan

Aplikasi harus menerapkan aturan karakter tunggal untuk awalan ini.

Tabel berikut mencantumkan tip kunci yang ditentukan oleh kerangka kerja.

Sub-kontrol Tipsalat kunci
Keluarga font F
Gaya font T
Ukuran font S
Menumbuhkan font G
Menyusutkan font K
Tebal B
Miring I
Menggarisbawahi U
Coretan X
Superscript Catatan Y atau Z : Jika atribut Keytip tidak dinyatakan dalam markup, tip kunci defaultnya adalah Y; jika tidak, keytip defaultnya adalah Keytip + Z.
Subskrip A
Warna font C
Sorotan font H

Awalan yang direkomendasikan untuk Pita EN-US Antarmuka Pengguna Multibahasa (MUI) adalah 'F', seperti yang diperlihatkan dalam contoh berikut.

<Command Name="cmdFontControl" Symbol="cmdFontControl" Comment="FontControl" Id="25001" Keytip="F" />

Cuplikan layar berikut mengilustrasikan tips tombol Kontrol Font seperti yang didefinisikan dalam contoh sebelumnya.

cuplikan layar tips tombol fontcontrol di wordpad untuk windows 7.

File Sumber Daya Pita

Saat file markup dikompilasi, file sumber daya yang berisi semua referensi sumber daya untuk aplikasi Pita dibuat.

Contoh file sumber daya sederhana:

// ******************************************************************************
// * This is an automatically generated file containing the ribbon resource for *
// * your application.                                                          *
// ******************************************************************************

#include ".\ids.h"

STRINGTABLE 
BEGIN
  cmdTab1_LabelTitle_RESID L"Tab 1" 
    /* LabelTitle cmdTab1_LabelTitle_RESID: These comments are optional and are 
       inserted into the header file. */
END

cmdGroup1_SmallImages_RESID    BITMAP    "res\\Button_Image.bmp" 
  /* SmallImages cmdGroup1_SmallImages_RESID: Group #1 */
STRINGTABLE 
BEGIN
  cmdFontControl_Keytip_RESID L"F" /* Keytip cmdFontControl_Keytip_RESID: FontControl */
END

FCSAMPLE_RIBBON    UIFILE    "Debug\\FCSample.bml"

Properti Kontrol Font

Kerangka kerja Pita menentukan kumpulan kunci properti untuk Kontrol Font dan subkontrol konstituennya.

Biasanya, properti Kontrol Font diperbarui di UI pita dengan membatalkan Perintah yang terkait dengan kontrol melalui panggilan ke metode IUIFramework::InvalidateUICommand . Peristiwa pembatalan ditangani, dan pembaruan properti ditentukan, oleh metode panggilan balik IUICommandHandler::UpdateProperty .

Metode panggilan balik IUICommandHandler::UpdateProperty tidak dijalankan, dan aplikasi meminta nilai properti yang diperbarui, hingga properti diperlukan oleh kerangka kerja. Misalnya, saat tab diaktifkan dan kontrol terungkap di UI pita, atau saat tipsalat ditampilkan.

Catatan

Dalam beberapa kasus, properti dapat diambil melalui metode IUIFramework::GetUICommandProperty dan diatur dengan metode IUIFramework::SetUICommandProperty .

Tabel berikut ini mencantumkan kunci properti yang terkait dengan Kontrol Font.

Kunci Properti Catatan
UI_PKEY_FontProperties Mengekspos, secara agregat sebagai objek IPropertyStore , semua properti sub-kontrol Kontrol Font.
Kerangka kerja mengkueri properti ini ketika UI_INVALIDATIONS_VALUE diteruskan sebagai nilai bendera dalam panggilan ke IUIFramework::InvalidateUICommand.
UI_PKEY_FontProperties_ChangedProperties Mengekspos, secara agregat sebagai objek IUISimplePropertySet , hanya properti sub-kontrol Kontrol Font yang telah berubah.
UI_PKEY_Keytip Hanya dapat diperbarui melalui pembatalan.
UI_PKEY_Enabled Mendukung IUIFramework::GetUICommandProperty dan IUIFramework::SetUICommandProperty.

Selain properti yang didukung oleh Kontrol Font itu sendiri, kerangka kerja Pita juga menentukan kunci properti untuk setiap sub-kontrol Kontrol Font. Kunci properti ini dan nilainya diekspos oleh kerangka kerja melalui implementasi antarmuka IPropertyStore yang menentukan metode untuk mengelola koleksi, juga disebut tas properti, pasangan nama dan nilai.

Aplikasi ini menerjemahkan struktur font ke properti yang dapat diakses melalui metode antarmuka IPropertyStore . Model ini menekankan perbedaan antara Komponen tumpukan teks Kontrol Font dan Antarmuka Perangkat Grafis (GDI) Windows (Struktur LOGFONT, Struktur CHOOSEFONT, dan Struktur CHARFORMAT2) yang didukung oleh kerangka kerja.

Tabel berikut mencantumkan kontrol individual dan kunci properti terkait.

Kontrol Kunci Properti Catatan
Ukuran font UI_PKEY_FontProperties_Size Saat eksekusi teks berukuran heterogen disorot, kerangka kerja Pita mengatur kontrol ukuran Font menjadi kosong dan nilai UI_PKEY_FontProperties_Size ke 0. Saat tombol Perbesar font atau Susutkan font diklik, semua teks yang disorot diubah ukurannya tetapi perbedaan relatif dalam ukuran teks dipertahankan.
Keluarga font UI_PKEY_FontProperties_Family Nama keluarga font GDI bervariasi menurut lokal sistem. Dengan demikian, jika nilai UI_PKEY_FontProperties_Family dipertahankan di seluruh sesi aplikasi, nilai tersebut harus diambil pada setiap sesi baru.
Menumbuhkan font UI_PKEY_FontProperties_Size Lihat Ukuran font.
Menyusutkan font UI_PKEY_FontProperties_Size Lihat Ukuran font.
Tebal UI_PKEY_FontProperties_Bold
Miring UI_PKEY_FontProperties_Italic
Menggarisbawahi UI_PKEY_FontProperties_Underline
Coretan UI_PKEY_FontProperties_Strikethrough
Subskrip UI_PKEY_FontProperties_VerticalPositioning Jika tombol Subskrip diatur, maka Superskrip juga tidak dapat diatur.
Superscript UI_PKEY_FontProperties_VerticalPositioning Jika tombol Superskrip diatur, maka Subskrip juga tidak dapat diatur.
Warna sorotan teks UI_PKEY_FontProperties_BackgroundColor, UI_PKEY_FontProperties_BackgroundColorType Menyediakan fungsionalitas yang sama dengan HighlightColors templat elemen DropDownColorPicker .
Kami sangat menyarankan agar hanya nilai warna sorotan Teks awal yang ditetapkan oleh aplikasi. Nilai terakhir yang dipilih harus dipertahankan dan tidak diatur saat kursor diposisikan ulang dalam dokumen. Ini memungkinkan akses cepat ke pilihan terakhir pengguna, dan pemilih warna tidak harus dibuka kembali.
Swatch warna tidak dapat disesuaikan.
Warna teks UI_PKEY_FontProperties_ForegroundColor, UI_PKEY_FontProperties_ForegroundColorType Menyediakan fungsionalitas yang sama dengan StandardColors templat elemen DropDownColorPicker .
Kami sangat menyarankan agar hanya nilai warna Teks awal yang ditetapkan oleh aplikasi. Nilai terakhir yang dipilih harus dipertahankan dan tidak diatur saat kursor diposisikan ulang dalam dokumen. Ini memungkinkan akses cepat ke pilihan terakhir pengguna, dan pemilih warna tidak harus dibuka kembali.
Swatch warna tidak dapat disesuaikan.

Tentukan Penangan Perintah FontControl

Bagian ini menjelaskan langkah-langkah yang diperlukan untuk mengikat Kontrol Font ke penangan Perintah.

Peringatan

Setiap upaya untuk memilih swatch warna dari pemilih warna Kontrol Font dapat mengakibatkan pelanggaran akses jika tidak ada penangan Perintah yang terkait dengan kontrol.

Contoh kode berikut menunjukkan cara mengikat Perintah yang dideklarasikan dalam markup ke handler Perintah.

//
//  FUNCTION: OnCreateUICommand(UINT, UI_COMMANDTYPE, IUICommandHandler)
//
//  PURPOSE: Called by the Ribbon framework for each command specified in markup, to allow
//           the host application to bind a command handler to that command.
//
STDMETHODIMP CApplication::OnCreateUICommand(
  UINT nCmdID,
  __in UI_COMMANDTYPE typeID,
  __deref_out IUICommandHandler** ppCommandHandler)
{
  UNREFERENCED_PARAMETER(typeID);
  UNREFERENCED_PARAMETER(nCmdID);

  if (NULL == m_pCommandHandler)
  {
    HRESULT hr = CCommandHandler::CreateInstance(&m_pCommandHandler);
    if (FAILED(hr))
    {
      return hr;
    }
  }

  return m_pCommandHandler->QueryInterface(IID_PPV_ARGS(ppCommandHandler));
}

Contoh kode berikut menggambarkan cara mengimplementasikan metode IUICommandHandler::Execute untuk Kontrol Font.

//
//  FUNCTION: Execute()
//
//  PURPOSE: Called by the Ribbon framework when a command is executed 
//           by the user. For example, when a button is pressed.
//
STDMETHODIMP CCommandHandler::Execute(
  UINT nCmdID,
  UI_EXECUTIONVERB verb,
  __in_opt const PROPERTYKEY* key,
  __in_opt const PROPVARIANT* ppropvarValue,
  __in_opt IUISimplePropertySet* pCommandExecutionProperties)
{
  UNREFERENCED_PARAMETER(nCmdID);

  HRESULT hr = E_NOTIMPL;
  if ((key) && (*key == UI_PKEY_FontProperties))
  {
    // Font properties have changed.
    switch (verb)
    {
      case UI_EXECUTIONVERB_EXECUTE:
      {
        hr = E_POINTER;
        if (pCommandExecutionProperties != NULL)
        {
          // Get the changed properties.
          PROPVARIANT varChanges;
          hr = pCommandExecutionProperties->GetValue(UI_PKEY_FontProperties_ChangedProperties, &varChanges);
          if (SUCCEEDED(hr))
          {
            IPropertyStore *pChanges;
            hr = UIPropertyToInterface(UI_PKEY_FontProperties, varChanges, &pChanges);
            if (SUCCEEDED(hr))
            {
              // Using the changed properties, set the new font on the selection on RichEdit control.
              g_pFCSampleAppManager->SetValues(pChanges);
              pChanges->Release();
            }
            PropVariantClear(&varChanges);
          }
        }
        break;
      }
      case UI_EXECUTIONVERB_PREVIEW:
      {
        hr = E_POINTER;
        if (pCommandExecutionProperties != NULL)
        {
          // Get the changed properties for the preview event.
          PROPVARIANT varChanges;
          hr = pCommandExecutionProperties->GetValue(UI_PKEY_FontProperties_ChangedProperties, &varChanges);
          if (SUCCEEDED(hr))
          {
            IPropertyStore *pChanges;
            hr = UIPropertyToInterface(UI_PKEY_FontProperties, varChanges, &pChanges);
            if (SUCCEEDED(hr))
            {
              // Set the previewed values on the RichEdit control.
              g_pFCSampleAppManager->SetPreviewValues(pChanges);
              pChanges->Release();
            }
            PropVariantClear(&varChanges);
          }
        }
        break;
      }
      case UI_EXECUTIONVERB_CANCELPREVIEW:
      {
        hr = E_POINTER;
        if (ppropvarValue != NULL)
        {
          // Cancel the preview.
          IPropertyStore *pValues;
          hr = UIPropertyToInterface(UI_PKEY_FontProperties, *ppropvarValue, &pValues);
          if (SUCCEEDED(hr))
          {   
            g_pFCSampleAppManager->CancelPreview(pValues);
            pValues->Release();
          }
        }
        break;
      }
    }
  }

  return hr;
}

Contoh kode berikut menggambarkan cara mengimplementasikan metode IUICommandHandler::UpdateProperty untuk Kontrol Font.

//
//  FUNCTION: UpdateProperty()
//
//  PURPOSE: Called by the Ribbon framework when a command property (PKEY) needs to be updated.
//
//  COMMENTS:
//
//    This function is used to provide new command property values, such as labels, icons, or
//    tooltip information, when requested by the Ribbon framework.  
//    
//
STDMETHODIMP CCommandHandler::UpdateProperty(
  UINT nCmdID,
  __in REFPROPERTYKEY key,
  __in_opt const PROPVARIANT* ppropvarCurrentValue,
  __out PROPVARIANT* ppropvarNewValue)
{
  UNREFERENCED_PARAMETER(nCmdID);

  HRESULT hr = E_NOTIMPL;
  if (key == UI_PKEY_FontProperties)
  {
    hr = E_POINTER;
    if (ppropvarCurrentValue != NULL)
    {
      // Get the font values for the selected text in the font control.
      IPropertyStore *pValues;
      hr = UIPropertyToInterface(UI_PKEY_FontProperties, *ppropvarCurrentValue, &pValues);
      if (SUCCEEDED(hr))
      {
        g_pFCSampleAppManager->GetValues(pValues);

        // Provide the new values to the font control.
        hr = UIInitPropertyFromInterface(UI_PKEY_FontProperties, pValues, ppropvarNewValue);
        pValues->Release();
      }
    }
  }

  return hr;
}

Pustaka Kontrol Windows Ribbon Framework

Elemen FontControl

Properti Kontrol Font

Sampel FontControl