Aracılığıyla paylaş


Denetimi Web Sayfasına Koyma (ATL Eğitmeni, Bölüm 7)

Denetiminiz artık tamamlandı. Denetim çalışmanızı gerçek dünyada görmek için bir Web sayfasına yerleştirin. Denetiminizi tanımladığınızda denetimi içeren bir HTML dosyası oluşturuldu. Çözüm Gezgini'dan PolyCtl.htm dosyasını açtığınızda denetiminizi bir Web sayfasında görebilirsiniz.

Bu adımda, denetime işlevsellik ekler ve Web sayfasının olaylara yanıt vermesi için betik oluşturursunuz. Denetimi, Internet Explorer'a denetimin betik oluşturma için güvenli olduğunu bildirmek için de değiştireceksiniz.

Yeni işlevsellik ekleme

Denetim özellikleri eklemek için

PolyCtl.cpp açın ve aşağıdaki kodu değiştirin:

if (PtInRegion(hRgn, xPos, yPos))
  Fire_ClickIn(xPos, yPos);
else
  Fire_ClickOut(xPos, yPos);

örneklerini şununla değiştirin:

short temp = m_nSides;
if (PtInRegion(hRgn, xPos, yPos))
{
  Fire_ClickIn(xPos, yPos);
  put_Sides(++temp);
}
else
{
  Fire_ClickOut(xPos, yPos);
  put_Sides(--temp);
}

Şekil artık tıkladığınız yere bağlı olarak kenar ekler veya kaldırır.

Web Sayfası Betiği Oluşturma

Denetim henüz bir şey yapmaz, bu nedenle Web sayfasını gönderdiğiniz olaylara yanıt verecek şekilde değiştirin.

Web sayfasını betik olarak kullanmak için

  1. PolyCtl.htm açın ve HTML görünümü'nü seçin. HTML koduna aşağıdaki satırları ekleyin. Sonra ancak öncesinde </BODY>eklenmelidir</OBJECT>.

    <SCRIPT LANGUAGE="VBScript">
    <!--
        Sub PolyCtl_ClickIn(x, y)
            MsgBox("Clicked (" & x & ", " & y & ") - adding side")
        End Sub
        Sub PolyCtl_ClickOut(x, y)
            MsgBox("Clicked (" & x & ", " & y & ") - removing side")
        End Sub
    -->
    </SCRIPT>
    
  2. HTM dosyasını kaydedin.

Denetimden Sides özelliğini alan bazı VBScript kodu eklediniz. Denetimin içine tıklarsanız kenar sayısını bir artırır. Denetimin dışına tıklarsanız, kenar sayısını bir azaltırsınız.

Denetimin Betik Oluşturma için Güvenli Olduğunu Belirtir

Web sayfasını yalnızca Internet Explorer'da denetimle görüntüleyebilirsiniz. Diğer tarayıcılar artık güvenlik zayıflıkları nedeniyle ActiveX denetimlerini desteklemiyor.

Not

Denetim görünmüyorsa, bazı tarayıcıların ActiveX denetimlerini çalıştırmak için ayar ayarlamaları gerektirdiğini bilin. ActiveX denetimlerinin nasıl etkinleştirileceğine ilişkin tarayıcı belgelerine bakın.

Geçerli Internet Explorer güvenlik ayarlarınıza bağlı olarak bir Güvenlik Uyarısı iletişim kutusu alabilirsiniz. Denetimin betik oluşturmanın güvenli olmayabileceğini ve potansiyel olarak zarar verebileceğini belirtir. Örneğin, bir dosyayı görüntüleyen ama aynı zamanda bir dosyayı silen bir Delete yönteminiz varsa, yalnızca bir sayfada görüntülediğinizde güvenli olur. Ancak biri yöntemini çağırabileceğinden Delete betik kullanmak güvenli olmaz.

Önemli

Bu öğreticide, Internet Explorer'daki güvenlik ayarlarınızı değiştirerek güvenli olarak işaretlenmemiş ActiveX denetimlerini çalıştırabilirsiniz. Denetim Masası'da, uygun ayarları değiştirmek için İnternet Özellikleri'ne ve Güvenlik'e tıklayın. Öğreticiyi tamamladığınızda, güvenlik ayarlarınızı özgün durumlarıyla değiştirin.

Bu denetim için Güvenlik Uyarısı iletişim kutusunu görüntülemesi gerekmeyen Internet Explorer'ı program aracılığıyla uyarabilirsiniz. Arabirimini kullanarak IObjectSafety bunu yapabilirsiniz. ATL, IObjectSafetyImpl sınıfında bu arabirimin bir uygulamasını sağlar. Arabirimi denetiminize IObjectSafetyImpl eklemek için devralınan sınıflar listenize ekleyin ve COM haritanıza bunun için bir girdi ekleyin.

Denetime IObjectSafetyImpl eklemek için

  1. PolyCtl.h içindeki devralınan sınıflar listesinin sonuna aşağıdaki satırı ekleyin ve önceki satıra virgül ekleyin:

    public IObjectSafetyImpl<CPolyCtl, INTERFACESAFE_FOR_UNTRUSTED_CALLER>
    
  2. PolyCtl.h'de COM haritasına aşağıdaki satırı ekleyin:

    COM_INTERFACE_ENTRY(IObjectSafety)
    

Denetimi Oluşturma ve Test Etme

Denetimi oluşturun. Derleme tamamlandıktan sonra PolyCtl.htm tarayıcı görünümünde yeniden açın. Bu kez, Web sayfası Güvenlik Uyarısı iletişim kutusu olmadan doğrudan görüntülenmelidir. Çokgenin içine tıklarsanız, kenar sayısı bir artar. Kenar sayısını azaltmak için çokgenin dışına tıklayın.

6. Adıma Geri Dön

Sonraki Adımlar

Bu adım ATL öğreticisini sonlandırıyor. ATL hakkında daha fazla bilgi için ATL başlangıç sayfasına bakın.

Ayrıca bkz.

Öğretici