Deftere nakil ve iletileri gönderme

Herhangi bir uygulama sonrası ve ileti gönderme. Sistemi gibi bir uygulama bir ileti kuyruğuna kopyalayarak bir mesaj mesaj ve ileti verisi penceresinin yordam için bağımsız değişken olarak geçirerek bir ileti gönderir. İleti göndermek için bir uygulama PostMessage işlevini kullanır. Uygulama SendMessage, BroadcastSystemMessage, SendMessageCallback, SendMessageTimeout, SendNotifyMessageveya SendDlgItemMessage işlevi çağrılarak bir mesaj gönderebilirsiniz.

Uygulama genellikle bir görevi gerçekleştirmek için belirli bir pencereyi bildiren bir ileti gönderir. PostMessage iletinin bir msg yapısı oluşturur ve iletiyi ileti sırasına kopyalar. Uygulamanın ileti döngüsü sonunda iletiyi alır ve uygun pencere yordamı gönderir.

Bir uygulama genelde görevi hemen gerçekleştirmeye penceresinin yordam bildiren bir ileti gönderir. SendMessage işlevi belirli bir pencereye karşılık gelen pencere yordamı ileti gönderir. İşlev bekler, pencere yordamı işleme tamamlanır ve sonra ileti sonucu verir. Üst ve alt windows genellikle birbirlerine mesaj göndererek iletişim. Örneğin, bir üst pencere, alt pencere adı bir düzenleme denetimi içeren bir mesaj göndererek denetim metnini ayarlayabilirsiniz. Denetim metni kullanıcı tarafından geri üst iletileri göndererek şekilde gerçekleştirilen değişiklikler üst pencere bildirebilir.

SendMessageCallback işlevi de verilen pencereye karşılık gelen pencere yordamı bir ileti gönderir. Ancak, bu işlev beklemeden döner. İleti penceresinin yordam işledikten sonra Sistem belirtilen geriçağırım işlevi çağırır. Geriçağırım işlevi hakkında daha fazla bilgi için bkz: SendAsyncProc fonksiyonu.

Arada sırada, sen-ebilmek istemek-e gönderir veya bir ileti sisteminde tüm üst düzey windows. Uygulama sistem saati değişirse, örneğin, bu değişiklik hakkında tüm üst düzey windows göndererek bildirmeniz gerekir bir WM_TIMECHANGE mesaj. Bir uygulama, göndermek ya da tüm üst düzey windows için SendMessage veya PostMessage işlevini çağırarak ve hwnd_topmost hwnd parametresi belirten mesajı. BroadcastSystemMessage işlevini çağırarak ve BSM_APPLICATIONS lpdwRecipients parametresini belirterek tüm uygulamaları bir mesaj yayınlayabilirsiniz.

Bir uygulama bir pencere belirtmeden bir ileti gönderebilirsiniz. Uygulama PostMessageçağrılırken bir null pencere tanıtıcısı sağlarsa, ileti geçerli iş parçacığıyla ilişkilendirilmiş sıra nakledilir. Çünkü hiçbir pencere tanıtıcısı belirtilen uygulama ileti döngüsü mesaj işlemeniz gerekir. Bu belirli bir pencere yerine tüm uygulama için geçerli bir ileti oluşturmak için tek yoldur.

Penceresinin yordam InSendMessage ya da InSendMessageEx işlevini kullanarak, başka bir iş parçacığı tarafından gönderilen bir ileti işleme olup olmadığını belirleyebilirsiniz. İleti işleme mesaj kökeni üzerinde bağlıdır Bu özellik kullanışlıdır.

Ortak bir programlama hatası PostMessage işlevi her zaman bir ileti mesaj kabul etmektir. İleti sırası dolu olduğunda bu doğru değil. Uygulama ileti nakledilip edilmediğini belirlemek ve o olmadı, o repost PostMessage işlevinin dönüş değeri kontrol etmelisiniz.

Index