Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, ActiveX denetim kapsayıcısında ActiveX denetimleri için olay işleyicilerini yüklemek için Özellikler penceresinin ( Sınıf Görünümünde) kullanılması ele alınmaktadır. Olay işleyicileri, belirli olayların bildirimlerini (denetimden) almak ve yanıt olarak bazı eylemler gerçekleştirmek için kullanılır. Bu bildirim, olayı "tetikleme" olarak adlandırılır.
Önemli
ActiveX, yeni geliştirme için kullanılmaması gereken eski bir teknolojidir. ActiveX'in yerine geçen modern teknolojiler hakkında daha fazla bilgi için bkz. ActiveX Denetimleri.
Uyarı
Bu makalede, yordamlarda ve kodda örnek olarak Container adlı bir iletişim kutusu tabanlı ActiveX denetim kapsayıcısı projesi ve Circ adlı ekli denetim kullanılmaktadır.
Özellikler penceresindeki (Sınıf Görünümünde) Olaylar düğmesini kullanarak, ActiveX denetim kapsayıcısı uygulamanızda gerçekleşebilecek olayların bir haritasını oluşturabilirsiniz. Denetim kapsayıcı sınıfına olay işleyicileri eklediğinizde Visual C++ tarafından "olay havuzu eşlemesi" olarak adlandırılan bu eşleme oluşturulur ve korunur. Bir olay eşleme girdisiyle uygulanan her olay işleyicisi, belirli bir olayı kapsayıcı olay işleyicisi üye işleviyle eşler. Bu olay işleyici işlevi, belirtilen olay ActiveX denetim nesnesi tarafından tetiklendiğinde çağrılır.
Etkinlik havuzu eşlemeleri hakkında daha fazla bilgi için Sınıf Kitaplığı Başvurusu'ndaki Olay Havuzu Eşlemeleri bölümüne bakın.
Projede Etkinlik İşleyici Değişiklikleri
Olay işleyicileri eklemek için Özellikler penceresini kullandığınızda, projenizde bir olay havuzu eşlemesi bildirilir ve tanımlanır. İlk kez bir olay işleyicisi eklendiğinde, aşağıdaki deyimler kontrol .CPP dosyasına eklenir. Bu kod, iletişim kutusu sınıfı için bir olay havuzu eşlemesi bildirir (bu örnekte): CContainerDlg
BEGIN_EVENTSINK_MAP(CContainerDlg, CDialog)
END_EVENTSINK_MAP()
Olaylar eklemek için Özellikler penceresini kullandığınızda, olay havuzu eşlemesine bir olay eşleme girdisi (ON_EVENT
) ve kapsayıcının uygulama (.CPP) dosyasına bir olay işleyici işlevi eklenir.
Aşağıdaki örnek, Circ denetiminin OnClickInCircCtrl
olayı için adlı ClickIn
bir olay işleyicisi bildirir:
BEGIN_EVENTSINK_MAP(CContainerDlg, CDialog)
ON_EVENT(CContainerDlg, IDC_CIRCCTRL1, 1 /* ClickIn */, OnClickInCircctrl1,
VTS_I4 VTS_I4)
END_EVENTSINK_MAP()
Ayrıca, aşağıdaki şablon CContainerDlg
sınıf uygulaması CPP dosyasına olay işleyicisi üye işlevi için eklenir:
BOOL CContainerDlg::OnClickInCircctrl1(OLE_XPOS_PIXELS nX, OLE_YPOS_PIXELS nY)
{
// use nX and nY here
TRACE(_T("nX = %d, nY = %d\n"), nX, nY);
return TRUE;
}
Olay havuzu makroları hakkında daha fazla bilgi için bkz. Sınıf Kitaplığı Başvurusu'ndaOlay Havuzu Eşlemeleri.
Olay işleyici işlevi oluşturmak için
Sınıf Görünümü'nde ActiveX denetimini içeren iletişim kutusunu seçin. Bu örnekte kullanın
CContainerDlg
.Özellikler penceresinde Olaylar düğmesine tıklayın.
Özellikler penceresinde, eklenmiş ActiveX denetiminin denetim kimliğini seçin. Bu örnekte kullanın
IDC_CIRCCTRL1
.Özellikler penceresinde, katıştırılmış ActiveX denetimi tarafından tetiklenebilir olayların listesi görüntülenir. Kalın olarak gösterilen herhangi bir üye işlevine zaten işleyici işlevleri atanmıştır.
İşlem sınıfının işlemesini istediğiniz olayı seçin. Bu örnek için Tıklayın'ı seçin.
Sağdaki açılan liste kutusundan ClickCircctrl1 Ekle'yi< seçin>.
Sınıf Görünümü'nden yeni işleyici işlevine çift tıklayarak
CContainerDlg
.CPP dosyasındaki olay işleyicisi koduna atlayın.