S
|St_AnGeR|
Guest
Microsoft® Windows®-tabanlı bir uygulamada, pencere ekran üzerinde uygulamanın kullanıcıdan bilgi aldığı ve kullanıcıya gösterilen tüm çıktıların yer aldığı bir dikdörtgendir. Bu yüzden Windows tabanlı tüm uygulamalar her şeyden önce bir pencere oluşturmak zorundadır..
ir pencere diğer tm uygulamaların pencereleriyle ekranı paylaşırlar. Buna karşın sadece tek bir pencere kullanıcıdan bir bilgi alabilir. Kullanıcılar fare, klavye veya benzeri veri giriş ünitelerini kullanarak bu pencereyle ve dolayısıyla uygulamayla etkileşimde bulunurlar. Bir pencere başka bir pencerenin içinde yer alabilir; yani, pencereler arasında hiyeraşi kurulabilir. Windows tabanlı işletim sistemleri ilk yüklendiklerinde, otomatik olarak masaüstü penceresini oluştururlar. Masaüstü penceresi sistem tarafından tanımlanmış bir penceredir. Ekranın arka planı çizer, ve diğer pencerelerin bağlı oldukları ana pencere görevini görür. Yani Windows tabanlı işletim sistemlerinde bir üst penceresi olmayan tek pencere masaüstü penceresidir. Onun dışındaki tüm pencereler bu pencereye bağlı alt pencerelerdir. Masaüstü penceresi ekranın arka planı çizmek ve boyamak için bir bitmap resim kullanır. Bu resime sizin de tahmin edebileceğiniz gibi masaüstü duvar kağıdı denilmektedir. İlk değer olarak masaüstü penceresi registry'de belirtilen belirli bir .bmp resmini kullanmaktadır.
Windows API'ye hızlı bir giriş yaparsak, GetDesktopWindow fonksiyonu masaüstü penceresine ulaşmamızı sağlayan bir tutucu döndürür. Örneğin, kullanıcının arka planındaki resmi değiştirmek için, SystemParametersInfo fonksiyonu wAction parametresini SPI_SETDESKWALLPAPER'a, lpvParam parametresini de resim dosyasının yolunu vererek arka plan resmini değiştirebilirsiniz. SystemParametersInfo parametrede belirtilen resim dosyasını yükler, masaüstü penceresini çağırır, pencerenin arka planını belirtilen resim ile boyar ardından dosyanın yolunu registry'e yazar.
Bir uygulamayı başlattığınız zaman, aksi belirtilmedikçe sistem uygulamayla görev çubuğunda bir düğmeyi ilişkilendirir. Görev çubuğundaki düğmede uygulamanın ikonu ve başlığı yer alır. Uygulama aktif olduğunda o uygulamanın düğmesi basılı duruma gelir. Bir uygulama penceresi başlık çubuğu, menü çubuğu, sistem menüsü, simge durumuna getir düğmesi, ekranı kapla düğmesi kapat düğmesi, yeniden boyutlandırma kenarlıkları, kullanıcı için bir işlem alanı, dikey ve yatay kaydırma çubukları yer alır.
Bir uygulama penceresi ana pencersine ek olarak, kontroller ve mesaj kutuları gibi değişik tiplerde pencerelere de sahip olabilir. Kontrol, kullanıcıdan belirli özelliklerde bilgi almak için özelleştirilmiş özel pencerelerdir. Uygulama aracılığıyla kontrollerin özelliklerine erişebilir, değiştirebilirsiniz. Windows Kontrolleri dediğimiz düğmeler, metin kutuları vb. tüm kontroller aslında kendi içlerinde birer penceredir.
Pencerelerin belirli özellikleri vardır:
Sınıf Adı,
Pencere Adı,
Pencere Stili,
Genişletilmiş Pencere Stili,
Pozisyon,
Boyut,
Üst pencerenin tutucusu,
Menü tutucusu ya da alt pencere tutucusu,
Uygulama örneği tutucusu,
Oluşturulma bilgisi,
Pencere tutucusu.
Her pencere bir pencere sınıfına aittir. Bir uygulama öncelikle kullanacağı sınıfı kaydettirmek zorundadır. Pencere sınıfı pencerenin birçok görünüm ve davranış özelliğini belirler. Pencere adı kullanıcıya gözüken ismidir; pencere başlığıdır.DropDownList, list box gibi bazı kontroller, kendi isimlerini kullanıcıya göstermezler. Diğer kontroller kendi isimlerini kendilerine ayrılan alan içinde gösterirler. Örneğin bir düğmenin adı düğmenin üzerinde yazan metindir. Bu isim programatik olarak erişimlerde kullanacağımız isim değildir!!
Her pencerenin en az bir ya da daha fazla stilleri vardır. "WS_" ile başlayan pencere sitilleri özelliklerine göre "or" operatörüyle ayarlanabilir. "WS_EX" ile başlayan sitiller genişletilmiş pencere sitilleridir. Genellikle Windows 2000/XP sitili pencere sınıfları oluşturulurken kullanılırlar. Pencerelerin pozisyonları ekranın sol üst köşesine göre pixel olarak ayarlanır. Tahmin edebileceğiniz üzere, pencerenin üst ve sol koordinatlarını vermek yeterli olmaktadır. Neden ? Pencerenin sağ ve alt koordinatları pencerenin boyutuna göre ayarlanmaktadır.
Üst pencere tutucusu pencerenin hangi pencerenin alt penceresi olduğunu sorgulamamızı sağlar. Alt pencere tutucusu ise o pencerenin alt pencerelerine erişimimizi sağlar. Uygulama örneği tutucusu ise aynı uygulamanın hangi kopyasına erişim olduğunu ayırt etmemizi sağlar. Oluşturulma bilgisi pencere oluşturulurkenki parametrelerin birer kopyasını içerir. Pencere tutucusunu o pencere üzerinde işlem yapmamıza izin veren o pencereyi diğerinden ayıran bir özelliktir pencerenin kimliğidir.Tıpkı dosya tutucusu gibi hangi pencere üzerinde işlemlerin gerçekleşeceğini belirleyen özelliktir.
Son Söz
Windows tabanlı tüm uygulamalar pencere mantığı üzerine çalışmaktadır. Window ailesinin yeni üyesi olacak olan Longhorn ile windows programlama mantığı çok değişecek. Ama yine de arka planda kendisi aynı şekilde çalışacaktır. Longhorn ile .NET üzerinde windows programlama mantığı şu an ki ASP.NET mantığına oldukça benzer olacaktır. Kullanıcı arabirimi ile kodlar ayrı yerlerde olacak; Kullanıcı arabirimi tamamen XML standartlarına göre oluşturulacaktır..
ir pencere diğer tm uygulamaların pencereleriyle ekranı paylaşırlar. Buna karşın sadece tek bir pencere kullanıcıdan bir bilgi alabilir. Kullanıcılar fare, klavye veya benzeri veri giriş ünitelerini kullanarak bu pencereyle ve dolayısıyla uygulamayla etkileşimde bulunurlar. Bir pencere başka bir pencerenin içinde yer alabilir; yani, pencereler arasında hiyeraşi kurulabilir. Windows tabanlı işletim sistemleri ilk yüklendiklerinde, otomatik olarak masaüstü penceresini oluştururlar. Masaüstü penceresi sistem tarafından tanımlanmış bir penceredir. Ekranın arka planı çizer, ve diğer pencerelerin bağlı oldukları ana pencere görevini görür. Yani Windows tabanlı işletim sistemlerinde bir üst penceresi olmayan tek pencere masaüstü penceresidir. Onun dışındaki tüm pencereler bu pencereye bağlı alt pencerelerdir. Masaüstü penceresi ekranın arka planı çizmek ve boyamak için bir bitmap resim kullanır. Bu resime sizin de tahmin edebileceğiniz gibi masaüstü duvar kağıdı denilmektedir. İlk değer olarak masaüstü penceresi registry'de belirtilen belirli bir .bmp resmini kullanmaktadır.
Windows API'ye hızlı bir giriş yaparsak, GetDesktopWindow fonksiyonu masaüstü penceresine ulaşmamızı sağlayan bir tutucu döndürür. Örneğin, kullanıcının arka planındaki resmi değiştirmek için, SystemParametersInfo fonksiyonu wAction parametresini SPI_SETDESKWALLPAPER'a, lpvParam parametresini de resim dosyasının yolunu vererek arka plan resmini değiştirebilirsiniz. SystemParametersInfo parametrede belirtilen resim dosyasını yükler, masaüstü penceresini çağırır, pencerenin arka planını belirtilen resim ile boyar ardından dosyanın yolunu registry'e yazar.
Bir uygulamayı başlattığınız zaman, aksi belirtilmedikçe sistem uygulamayla görev çubuğunda bir düğmeyi ilişkilendirir. Görev çubuğundaki düğmede uygulamanın ikonu ve başlığı yer alır. Uygulama aktif olduğunda o uygulamanın düğmesi basılı duruma gelir. Bir uygulama penceresi başlık çubuğu, menü çubuğu, sistem menüsü, simge durumuna getir düğmesi, ekranı kapla düğmesi kapat düğmesi, yeniden boyutlandırma kenarlıkları, kullanıcı için bir işlem alanı, dikey ve yatay kaydırma çubukları yer alır.
Bir uygulama penceresi ana pencersine ek olarak, kontroller ve mesaj kutuları gibi değişik tiplerde pencerelere de sahip olabilir. Kontrol, kullanıcıdan belirli özelliklerde bilgi almak için özelleştirilmiş özel pencerelerdir. Uygulama aracılığıyla kontrollerin özelliklerine erişebilir, değiştirebilirsiniz. Windows Kontrolleri dediğimiz düğmeler, metin kutuları vb. tüm kontroller aslında kendi içlerinde birer penceredir.
Pencerelerin belirli özellikleri vardır:
Sınıf Adı,
Pencere Adı,
Pencere Stili,
Genişletilmiş Pencere Stili,
Pozisyon,
Boyut,
Üst pencerenin tutucusu,
Menü tutucusu ya da alt pencere tutucusu,
Uygulama örneği tutucusu,
Oluşturulma bilgisi,
Pencere tutucusu.
Her pencere bir pencere sınıfına aittir. Bir uygulama öncelikle kullanacağı sınıfı kaydettirmek zorundadır. Pencere sınıfı pencerenin birçok görünüm ve davranış özelliğini belirler. Pencere adı kullanıcıya gözüken ismidir; pencere başlığıdır.DropDownList, list box gibi bazı kontroller, kendi isimlerini kullanıcıya göstermezler. Diğer kontroller kendi isimlerini kendilerine ayrılan alan içinde gösterirler. Örneğin bir düğmenin adı düğmenin üzerinde yazan metindir. Bu isim programatik olarak erişimlerde kullanacağımız isim değildir!!
Her pencerenin en az bir ya da daha fazla stilleri vardır. "WS_" ile başlayan pencere sitilleri özelliklerine göre "or" operatörüyle ayarlanabilir. "WS_EX" ile başlayan sitiller genişletilmiş pencere sitilleridir. Genellikle Windows 2000/XP sitili pencere sınıfları oluşturulurken kullanılırlar. Pencerelerin pozisyonları ekranın sol üst köşesine göre pixel olarak ayarlanır. Tahmin edebileceğiniz üzere, pencerenin üst ve sol koordinatlarını vermek yeterli olmaktadır. Neden ? Pencerenin sağ ve alt koordinatları pencerenin boyutuna göre ayarlanmaktadır.
Üst pencere tutucusu pencerenin hangi pencerenin alt penceresi olduğunu sorgulamamızı sağlar. Alt pencere tutucusu ise o pencerenin alt pencerelerine erişimimizi sağlar. Uygulama örneği tutucusu ise aynı uygulamanın hangi kopyasına erişim olduğunu ayırt etmemizi sağlar. Oluşturulma bilgisi pencere oluşturulurkenki parametrelerin birer kopyasını içerir. Pencere tutucusunu o pencere üzerinde işlem yapmamıza izin veren o pencereyi diğerinden ayıran bir özelliktir pencerenin kimliğidir.Tıpkı dosya tutucusu gibi hangi pencere üzerinde işlemlerin gerçekleşeceğini belirleyen özelliktir.
Son Söz
Windows tabanlı tüm uygulamalar pencere mantığı üzerine çalışmaktadır. Window ailesinin yeni üyesi olacak olan Longhorn ile windows programlama mantığı çok değişecek. Ama yine de arka planda kendisi aynı şekilde çalışacaktır. Longhorn ile .NET üzerinde windows programlama mantığı şu an ki ASP.NET mantığına oldukça benzer olacaktır. Kullanıcı arabirimi ile kodlar ayrı yerlerde olacak; Kullanıcı arabirimi tamamen XML standartlarına göre oluşturulacaktır..