116 - Изпращане на съобщения между програми
Стъпка 116 - Изпращане на съобщения между програми
И така, нашата задача е да създадем две програми. Единият ще бъде сървър и ще изпраща съобщения, а вторият ще бъде клиент, разбира се, и ще получава тези съобщения. Така че общата идея е следната. Можете да измиете съобщението, като използватеHWNDна друг прозорец. За това има функцияSendMessage. Той ще изпрати всяко съобщение до всеки прозорец, който му кажете. Можете да уловите съобщението, като използвате картата на съобщениятаON_MESSAGE. Да направим сървър.
СтартирайтеAppWizard, сега създайте приложение, базирано на диалог, като деактивирате всички бутони за по-лесно. В диалоговия прозорец нека направим бутон. И процедурата за щракване върху него също е необходима.

Нека дефинираме нашето послание. Сега можете да създадете код при натискане на бутон. Първото нещо, което правя, е да използвам функцииAPIвместоMFC. За това поставям две точки. За да изпратя съобщение, трябва да намеря прозореца на клиента - това се прави отFindWindow. Първият параметър трябва да бъде името на класа на прозореца, който е посочен вCreateStruct, когато прозорецът е създаден. Не съм го уточнил. Вторият параметър е името на заглавието на прозореца. Това крие известна опасност, ако имената на заглавието на прозореца са еднакви, т.к. съобщението ще бъде изпратено до всички прозорци с това заглавие. Но може да се обърне и във ваша полза. Като цяло, направих това за простота. И вие решавате. Ако прозорецът бъде намерен, можем да му изпратим съобщениеSendMessage, като посочим на кого изпращаме съобщение. Изпращам съобщението си без параметри. Това е всичко сега клиентът.
За клиента ще създадем и проектMFC AppWizard, но без бутон. Точно същото. Нека опишем реакцията на нашето съобщение. И съответно функцията.
И тяреализация по естествен път.
Стартирайте две приложения. Кликнете върху бутона на сървъра и клиентът ще ви отговори със звук. Така те намериха общ език.