Принудительно отображать модальную форму на панели задач - PullRequest
6 голосов
/ 05 января 2012

Согласно MS , когда вы показываете модальную форму в VB6, она не отображается на панели задач «по дизайну»

Но есть ли способ сделать модальную форму VB6 такой, чтобыпоказано на панели задач (свойство ShowInTaskbar не действует, когда оно модальное)

В одном из наших приложений у нас есть модальная форма входа в систему, которая является первой формой, отображаемой в приложении после выгрузки заставкиесли пользователь перемещает другое окно поверх, вы не знаете, что оно загружено.

Ответы [ 3 ]

6 голосов
/ 06 января 2012

Вы можете использовать что-то подобное в модальной форме

Private Const WS_EX_APPWINDOW               As Long = &H40000
Private Const GWL_EXSTYLE                   As Long = (-20)
Private Const SW_HIDE                       As Long = 0
Private Const SW_SHOW                       As Long = 5

Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long

Private m_bActivated As Boolean

Private Sub Form_Activate()
    If Not m_bActivated Then
        m_bActivated = True
        Call SetWindowLong(hwnd, GWL_EXSTYLE, GetWindowLong(hwnd, GWL_EXSTYLE) Or WS_EX_APPWINDOW)
        Call ShowWindow(hwnd, SW_HIDE)
        Call ShowWindow(hwnd, SW_SHOW)
    End If
End Sub
3 голосов
/ 10 октября 2014

Поместите этот код в ваше модальное окно:


    Private Declare Function ShowWindow Lib "user32" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long

    Private Sub Form_Activate()
        Call ShowWindow(Me.hWnd, vbHide)
        Me.Caption = Me.Caption
        Call ShowWindow(Me.hWnd, vbNormalFocus)
    End Sub

1 голос
/ 05 января 2012

Вам нужно будет создать подкласс, что-то вроде this из VBAccelerator.

Отказ от ответственности - адаптировано из ответа PM2 на этот вопрос , что является , вероятно, дубликатом, но мы не можем сказать, потому что оригинальный плакат никогда не говорил нам, была ли их форма модальной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...