Сообщения - это то, чем дышит Windows. В Visual Basic большинство событий порождается Windows-сообщениями. Например, вы нажимаете клавишу, когда фокус ввода находится в каком-нибудь поле. Windows посылает этому полю сообщения WM_KEYDOWN, WM_CHAR, WM_KEYUP, но программа, написанная на Visual Basic, увидит эти сообщения как события KeyDown, KeyPress, KeyUp. Сообщения поступают от пользовательского интерфейса(например, от клавиатуры и мыши), от системы - окнам, от окон - системе и от окна - другому окну.
Элементы управления и формы Visual Basic постоянно принимают сообщения и преобразуют их в события или атрибуты в соответствии с инструкциями, которые содержатся в сообщениях. К примеру, в вашем меню содержится элемент mnuOpen. Когда пользователь выбирает Открыть, происходит событие mnuOpen_Click. Но что происходит в Windows? Система получает сигнал от порта мыши, что на каком-то участке экрана произошел щелчок. Windows проверяет данные, отыскивая окно, которому принадлежит участок экрана и определяет, что щелчок произошел на элементе Открыть. Тогда система посылает серию сообщений, связанных с этим событием, а Visual Basic превращает их в события.
У каждого окна есть специальная оконная процедура, обрабатывающая сообщения. Например, если окно получает сообщение WM_QUIT, программа завершает свою работу. Сообщения посылаются с помощью функции SendMessage
Но это лишь маленькая часть возможностей, которые доступны с помощью сообщений. Например, проверить, есть ли что отменять, получить количество строк текста, текущую строку, установить число пробелов для табуляции или сделать много других вещей, которые Visual Basic не поддерживает.