Покажите или скройте строку заголовка по требованию

@Matt,

можно все еще использовать HttpWebRequest, затем направить ответ, который Вы получаете к фактическому outputstream ответу, это служило бы ответу назад пользователю. Единственная проблема - то, что были бы повреждены любые относительные URL.

однако, который может работать.

7
задан beakersoft 8 September 2009 в 14:00
поделиться

2 ответа

На этой странице , чтобы сделать это во время написания:

form1.borderstyle = 0 (Нет), 1 (Фиксированный одиночный), 2 (Размерный), 3 (Фиксированный Диалог), 4 (Фиксированное окно инструментов), 5 (Размер окна инструментов)

Однако включить / выключить во время выполнения намного сложнее, см. Рассуждения и пример того, как это сделать Здесь

3
ответ дан 6 December 2019 в 10:52
поделиться

Чтобы процедура работала как в 32-, так и в 64-битных системах, вам нужно выполнить небольшую дополнительную проверку. В таких случаях я использую рефлектор, чтобы посмотреть, как фреймворк реализует пинвоки. В частности, взгляните на System.Windows.Forms.SafeNativeMethods и System.Windows.Forms.UnSafeNativeMethods.

Ниже приведен код, который я использую, который использует преимущества методов расширения.

'See: System.Windows.Forms.SafeNativeMethods.SetWindowPos
<DllImport("user32.dll", CharSet:=CharSet.Auto, ExactSpelling:=True)> _
Private Function SetWindowPos(ByVal hWnd As HandleRef, ByVal hWndInsertAfter As HandleRef, ByVal x As Integer, ByVal y As Integer, ByVal cx As Integer, ByVal cy As Integer, ByVal flags As Integer) As Boolean
End Function

'See: System.Windows.Forms.UnSafeNativeMethods.GetWindowLong*
<DllImport("user32.dll", EntryPoint:="GetWindowLong", CharSet:=CharSet.Auto)> _
Private Function GetWindowLong32(ByVal hWnd As HandleRef, ByVal nIndex As Integer) As IntPtr
End Function

<DllImport("user32.dll", EntryPoint:="GetWindowLongPtr", CharSet:=CharSet.Auto)> _
Private Function GetWindowLongPtr64(ByVal hWnd As HandleRef, ByVal nIndex As Integer) As IntPtr
End Function

Private Function GetWindowLong(ByVal hWnd As HandleRef, ByVal nIndex As Integer) As IntPtr
    If (IntPtr.Size = 4) Then
        Return GetWindowLong32(hWnd, nIndex)
    End If
    Return GetWindowLongPtr64(hWnd, nIndex)
End Function

'See: System.Windows.Forms.UnSafeNativeMethods.SetWindowLong*
<DllImport("user32.dll", EntryPoint:="SetWindowLong", CharSet:=CharSet.Auto)> _
Private Function SetWindowLongPtr32(ByVal hWnd As HandleRef, ByVal nIndex As Integer, ByVal dwNewLong As HandleRef) As IntPtr
End Function

<DllImport("user32.dll", EntryPoint:="SetWindowLongPtr", CharSet:=CharSet.Auto)> _
Private Function SetWindowLongPtr64(ByVal hWnd As HandleRef, ByVal nIndex As Integer, ByVal dwNewLong As HandleRef) As IntPtr
End Function

Private Function SetWindowLong(ByVal hWnd As HandleRef, ByVal nIndex As Integer, ByVal dwNewLong As HandleRef) As IntPtr
    If (IntPtr.Size = 4) Then
        Return SetWindowLongPtr32(hWnd, nIndex, dwNewLong)
    End If
    Return SetWindowLongPtr64(hWnd, nIndex, dwNewLong)
End Function

'See: System.Windows.Forms.Control.SetWindowStyle
Private Sub SetWindowStyle(ByVal form As Form, ByVal flag As Integer, ByVal value As Boolean)
    Dim windowLong As Integer = CInt(CLng(GetWindowLong(New HandleRef(form, form.Handle), -16)))
    Dim ip As IntPtr
    If value Then
        ip = New IntPtr(windowLong Or flag)
    Else
        ip = New IntPtr(windowLong And Not flag)
    End If
    SetWindowLong(New HandleRef(form, form.Handle), -16, New HandleRef(Nothing, ip))
End Sub

<Extension()> _
Public Sub ShowCaption(ByVal form As Form)
    SetWindowStyle(form, &H400000, True)
    ApplyStyleChanges(form)
End Sub

<Extension()> _
Public Sub HideCaption(ByVal form As Form)
    SetWindowStyle(form, &H400000, False)
    ApplyStyleChanges(form)
End Sub

<Extension()> _
Public Function ApplyStyleChanges(ByVal form As Form) As Boolean
    Return SetWindowPos(New HandleRef(form, form.Handle), NullHandleRef, 0, 0, 0, 0, &H37)
End Function
2
ответ дан 6 December 2019 в 10:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: