Я предпочитаю опрос. События (в любом случае на Windows) имеют неприятную привычку заблудиться. Я боролся долго и упорно с ключевыми и мышами релизов кнопки заблудиться, так что теперь я предпочитаю просто проверить состояние все каждый тик и сделать набор операций отметить, какие из них будут изменены.
Чтобы приблизиться к вашему вопросу, я склонен ожидать, что вы не захотите поместить обработку ввода в ваш класс окна. Вместо этого создайте другой класс, который выполняет обработку ввода (и передает ему события, если вы предпочитаете управление событиями), а затем просто дайте ему сделать свое дело. В этой настройке ваше окно получает события, но единственное, что он делает с ними, это передает их набору объектов, которые могут иметь с ними дело.
Проблема с обработкой событий в окне состоит в том, что вы затем еще один (или более) шаг удалены от того, что заботится о результатах обработки ввода. Я бы склонялся к тому, чтобы толкать процессор ввода и средство ввода данных ближе друг к другу в графе объектов, но, опять же, главное окно на самом деле не заботится о (большинстве) самих событиях, оно должно просто передавать эти вещи объектам, которые это делают.