Alat yang ditentukan pengguna

MFC mendukung alat yang ditentukan pengguna. Alat yang ditentukan pengguna adalah perintah khusus yang menjalankan program eksternal yang ditentukan pengguna. Anda dapat menggunakan proses penyesuaian untuk mengelola alat yang ditentukan pengguna. Namun, Anda tidak dapat menggunakan proses ini jika objek aplikasi Anda tidak berasal dari Kelas CWinAppEx. Untuk informasi selengkapnya tentang kustomisasi, lihat Kustomisasi untuk MFC.

Jika Anda mengaktifkan dukungan alat yang ditentukan pengguna, kotak dialog kustomisasi secara otomatis menyertakan tab Alat . Ilustrasi berikut ini memperlihatkan halaman Alat .

Tools tab in the Customize dialog box.
Tab Alat kotak dialog kustomisasi

Mengaktifkan dukungan alat yang ditentukan pengguna

Untuk mengaktifkan alat yang ditentukan pengguna dalam aplikasi, panggil CWinAppEx::EnableUserTools. Namun, Anda harus terlebih dahulu menentukan beberapa konstanta dalam file sumber daya aplikasi Anda untuk digunakan sebagai parameter untuk panggilan ini.

Di editor sumber daya buat perintah dummy yang menggunakan ID perintah yang sesuai. Dalam contoh berikut, kami menggunakan ID_TOOLS_ENTRY sebagai ID perintah. ID perintah ini menandai lokasi di satu atau beberapa menu tempat kerangka kerja akan menyisipkan alat yang ditentukan pengguna.

Anda harus menyisihkan beberapa ID berturut-turut dalam tabel string untuk mewakili alat yang ditentukan pengguna. Jumlah string yang Anda sisihkan sama dengan jumlah maksimum alat pengguna yang dapat ditentukan pengguna. Dalam contoh berikut, ini dinamai ID_USER_TOOL1 melalui ID_USER_TOOL10.

Anda dapat menawarkan saran kepada pengguna untuk membantu mereka memilih direktori dan argumen untuk program eksternal yang akan dipanggil sebagai alat. Untuk melakukan ini, buat dua menu popup di editor sumber daya. Dalam contoh berikut ini diberi nama IDR_MENU_ARGS dan IDR_MENU_DIRS. Untuk setiap perintah di menu ini, tentukan string dalam tabel string aplikasi Anda. ID sumber daya string harus sama dengan ID perintah.

Anda juga dapat membuat kelas turunan dari Kelas CUserTool untuk menggantikan implementasi default. Untuk melakukan ini, berikan informasi runtime untuk kelas turunan Anda sebagai parameter keempat di CWinAppEx::EnableUserTools, alih-alih RUNTIME_CLASS(Kelas CUserTool).

Setelah Anda menentukan konstanta yang sesuai, panggil CWinAppEx::EnableUserTools untuk mengaktifkan alat yang ditentukan pengguna.

Panggilan metode berikut menunjukkan cara menggunakan konstanta ini:

EnableUserTools(ID_TOOLS_ENTRY,
                ID_USER_TOOL1,
                ID_USER_TOOL10,
                RUNTIME_CLASS(CUserTool),
                IDR_MENU_ARGS,
                IDR_MENU_DIRS);

Dalam contoh ini, tab alat akan disertakan pada kotak dialog Kustomisasi . Kerangka kerja akan menggantikan perintah apa pun yang cocok dengan ID ID_TOOLS_ENTRY perintah di menu apa pun dengan sekumpulan alat pengguna yang saat ini ditentukan setiap kali pengguna membuka menu tersebut. ID ID_USER_TOOL1 perintah melalui ID_USER_TOOL10 dicadangkan untuk digunakan untuk alat yang ditentukan pengguna. Kelas CUserTool Class menangani panggilan ke alat pengguna. Tab alat kotak dialog Kustomisasi menyediakan tombol di sebelah kanan bidang entri argumen dan direktori untuk mengakses menu IDR_MENU_ARGS dan IDR_MENU_DIRS. Saat pengguna memilih perintah dari salah satu menu ini, kerangka kerja ditambahkan ke kotak teks yang sesuai, string yang memiliki ID sumber daya sama dengan ID perintah.

Termasuk alat yang telah ditentukan sebelumnya

Jika Anda ingin mendefinisikan beberapa alat pada startup aplikasi, Anda harus mengambil alih metode CFrameWnd::LoadFrame dari jendela utama aplikasi Anda. Dalam metode itu, Anda harus melakukan langkah-langkah berikut.

Untuk menambahkan alat baru di LoadFrame
  1. Dapatkan pointer ke objek Kelas CUserToolsManager dengan memanggil CWinAppEx::GetUserToolsManager.

  2. Untuk setiap alat yang ingin Anda buat, panggil CUserToolsManager::CreateNewTool. Metode ini mengembalikan penunjuk ke objek Kelas CUserTool dan menambahkan alat pengguna yang baru dibuat ke kumpulan alat internal. Jika Anda memberikan informasi runtime untuk kelas turunan Kelas CUserTool sebagai parameter keempat CWinAppEx::EnableUserTools, CUserToolsManager::CreateNewTool akan membuat instans dan mengembalikan instans kelas tersebut sebagai gantinya.

  3. Untuk setiap alat, atur label teksnya dengan mengatur CUserTool::m_strLabel dan mengatur perintahnya dengan memanggil CUserTool::SetCommand. Implementasi default Kelas CUserTool secara otomatis mengambil ikon yang tersedia dari program yang ditentukan dalam panggilan ke SetCommand.

Baca juga

Kustomisasi untuk MFC
Kelas CUserTool
Kelas CUserToolsManager
Kelas CWinAppEx