MessageBox(hWnd."Получен ответ\п от окна А "."ОКНО Б",MB_T0PM0ST); break; case WM_RBUTT0ND0WN:

hWndA = FindWindow("MINIM"."Окно A");

// можно вместо имени "Окно А" передать NULL

if(hWndA)
{Test - 8;

PostMessage(hWndA.WMJJSER+1. (WPARAM)hWnd. 0): sprintf(s."0KHO Б. Режим 2i".24/Test);

MessageBox(hWnd."Послали сообщение \n окну A".s.MB_SYSTEMMODAL); //Ставим здесь контрольный останов

}
else
{Test - 24;

sprintf(s."0KHO Б. Режим ".24/Test);

MessageBox(hWnd."Окно с заголовком "Окно А\" не найдено".s.B_T0PM0ST); }

break;
case WM_LBUTT0ND0WN:
hWndA - FindWindow("MINIM,,."OKHo A"); if(hWndA) {Test - 12;

SendMessage(hWndA.WMJJSER+1.(WPARAM)hWnd.0): sprintf(s."0KHO Б.Режим .24/Test);

MessageBox(hWnd. "Послали сообщение \n окну A",s.MB_T0PM0ST); }

else
{Test - 24;

sprintf(s."0KHO Б. Режим ".24/Test);

MessageBox(hWnd."Окно с заголовком V'Okho A\" не найдено",s.MB_T0PM0ST); }

break;
case WM_DESTROY: PostQuitMessage(O); break;
}
return DefWindowProc(hWnd.message.wParam.lParam); }

Оконная функция окна А при обработке сообщения WM_USER+1 функцией BOOL IsWindow(HWND) проверяет, действительно ли параметр w Param полученного сообщения связан с реально существующим окном. Если окно существует, то функция IsWindowO возвращает значение true и при помощи функции SendMessageO выполнятся передача ответа окну Б, как это показано в листинге 2.2.

Обмен сообщениями

Листинг 2.2

LRESULT API ENTRY InputWndProc (HWND hWnd. UINT message.
WPARAM wParam.LPARAM lParam)
{HWND hWndB - 0; switch (message) {
case WMJJSER+1:

MessageBox(hWnd."Получено сообщение от окна Б"."ОКНО A".MB_T0PM0ST);

hWndB - (HWND)wParam:

ifdsWindow(hWndB)) // Окно существует ?

{SendMessage( hWndB.WMJJSER+2.(WPARAM)hWnd.O):

MessageBoxChWnd."Отправлен ответ окну Б "."ОКНО A". MB_T0PM0ST);

}
break;
case WM_DESTROY: PostQuitMessage(O); break:
}
return DefWindowProc(hWnd.message.wParam.lParam); }

⇐ Предыдущая| |Следующая ⇒