Pencerede Ne Zaman Çizim Yapılır?
Uygulama çeşitli zamanlarda bir pencere çizer: ilk kez pencere oluştururken, pencerenin boyutunu değiştirirken, pencereyi başka bir pencerenin arkasından taşırken, pencereyi en aza indirirken veya en üst düzeye çıkarırken, açık bir dosyadaki verileri görüntülerken ve görüntülenen verilerin bir bölümünü kaydırırken, değiştirirken veya seçerken.
Sistem, pencereyi taşıma ve boyutlandırma gibi eylemleri yönetir. Bir eylem pencerenin içeriğini etkilerse, sistem pencerenin etkilenen bölümünü güncelleştirmeye hazır olarak işaretler ve sonraki fırsatta pencerenin pencere yordamına bir WM_PAINT iletisi gönderir. İleti, nelerin güncelleştirilmesi gerektiğini belirlemek ve gerekli çizimi gerçekleştirmek için uygulamaya bir sinyaldir.
Uygulama tarafından açık dosyaları görüntüleme ve görüntülenen verileri seçme gibi bazı eylemler yönetilir. Bu eylemler için, bir uygulama pencerenin eylemden etkilenen bölümünü güncelleştirmek için işaretleyebilir ve bir sonraki fırsatta bir WM_PAINT iletisi gönderilmesine neden olabilir. Bir eylem anında geri bildirim gerektiriyorsa, uygulama eylem gerçekleşirken WM_PAINTbeklemeden çizim yapabilir. Örneğin tipik bir uygulama, bir sonraki WM_PAINT iletisinin alanı güncelleştirmesini beklemek yerine kullanıcının seçtiği alanı vurgular.
Her durumda, bir uygulama oluşturulur oluşturulmaz bir pencerede çizim yapabilir. Pencerede çizim yapmak için, uygulamanın önce pencerenin görüntüleme aygıtı bağlamından bir tanıtıcı elde etmesi gerekir. İdeal olan, bir uygulamanın WM_PAINT iletilerin işlenmesi sırasında çizim işlemlerinin çoğunu gerçekleştirmesidir. Bu durumda uygulama, BeginPaint işlevini çağırarak bir görüntüleme aygıtı bağlamı alır. Uygulama, WinMainiçinden veya klavye ya da fare mesajlarının işlenmesi sırasında başka bir zamanda çizim gerçekleştiriyorsa, görünen DC'yi almak için GetDCveya GetDCExişleviniçağırır.