Бесформенный VB.Net - Переопределяет Sub в модуле? - PullRequest
0 голосов
/ 26 апреля 2019

Я кодировал приложение WindowsForm, которое обрабатывает основные процессы обновления и обнаружение USB с помощью сообщений Windows, и здесь возникает проблема.В форме нет проблем с «Protected Overrides Sub WndProc», подобным моему:

Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
        ' >>>>Process USB Insertion<<<<
        If m.Msg = WM_DEVICECHANGE Then
            If CInt(m.WParam) = DBT_DEVICEARRIVAL Then
                Dim DeviceInfo As DEV_BROADCAST_HDR
                DeviceInfo = DirectCast(Marshal.PtrToStructure(m.LParam, GetType(DEV_BROADCAST_HDR)), DEV_BROADCAST_HDR)
                If DeviceInfo.dbch_devicetype = DBT_DEVTYP_VOLUME Then
                    Dim Volume As DEV_BROADCAST_VOLUME
                    Volume = DirectCast(Marshal.PtrToStructure(m.LParam, GetType(DEV_BROADCAST_VOLUME)), DEV_BROADCAST_VOLUME)
                    Driveletter = (GetDriveLetterFromMask(Volume.dbcv_unitmask) & ":\")

Есть ли способ включить это в модуль, чтобы я мог создать приложение без формы?

Заранее спасибо!

1 Ответ

0 голосов
/ 26 апреля 2019

Я не думаю, что это возможно. Класс System.Windows.Forms.NativeWindow является базовым классом окна. Используя этот класс, вы можете использовать функцию с именем AssignHandle, которая принимает один параметр, HWND объекта (элемента управления). И вы должны переопределить метод с именем WndProc. Итак, без формы нет WndProc.

...