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); }