نمایش نتایج 1 تا 6 از 6

نام تاپیک: MIDI form تغییر BorderStyle کمک کنید

  1. #1

    Angry MDI form تغییر BorderStyle کمک کنید

    با سلام
    لطفا اگه کسی در مورد تغییر در نمایش فرم های ام دی ای دره برام بنویسه
    من میخوام یه فرم با خاصیت MDIForm را به حال None نمایش بدم یعنی بدون کادر پنجره روشی هست ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
    آخرین ویرایش به وسیله digi_tal : جمعه 23 مرداد 1388 در 18:50 عصر

  2. #2

    نقل قول: MIDI form تغییر BorderStyle کمک کنید

    سلام
    بفرما عزیز
    توی خود فرم MDI بریز:

    Option Explicit
    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 Const GWL_STYLE = (-16)
    Private Const WS_BORDER = &H800000
    Private Const WS_CAPTION = &HC00000

    Private Sub MDIForm_Load()
    Dim lStyle As Long
    lStyle = GetWindowLong(MDIForm1.hwnd, GWL_STYLE) 'Get's the WindowLong

    ' lStyle = lStyle And Not WS_BORDER
    ' lStyle = lStyle And Not WS_BORDER
    ' lStyle = lStyle And Not WS_CAPTION
    lStyle = lStyle And WS_BORDER And Not WS_CAPTION

    Call SetWindowLong(MDIForm1.hwnd, GWL_STYLE, lStyle)
    End Sub




    همونطور که میبینی lStyle چند تا مد داره.هرکدوم رو خواستی ست کن

  3. #3

    نقل قول: MIDI form تغییر BorderStyle کمک کنید

    برای اینکه Border Style تو MDIForm بصورت Fix بشه چیکار میشه کرد؟

  4. #4

    نقل قول: MIDI form تغییر BorderStyle کمک کنید

    این کد اصلاح شده برای خواسته شما عزیز جان

    Option Explicit
    Private Const GWL_STYLE = (-16)
    Private Const WS_SYSMENU = &H80000
    Private Const WS_CAPTION = &HC00000
    Private Const WS_THICKFRAME = &H40000
    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 Const WS_BORDER = &H800000
    Public Sub EnableResizing(Form As Form, Enable As Boolean)
    Dim style As Long

    style = GetWindowLong(Form.hwnd, GWL_STYLE)
    If Enable Then
    style = style Or WS_THICKFRAME
    Else
    style = style And Not WS_THICKFRAME
    End If
    style = SetWindowLong(Form.hwnd, GWL_STYLE, style)
    End Sub


    Private Sub MDIForm_Load()
    Show
    EnableResizing Me, False
    Dim lStyle As Long
    lStyle = GetWindowLong(MDIForm1.hwnd, GWL_STYLE) 'Get's the WindowLong

    lStyle = lStyle And Not WS_BORDER
    ' lStyle = lStyle And Not WS_BORDER
    ' lStyle = lStyle And Not WS_CAPTION
    ' lStyle = lStyle And WS_BORDER And Not WS_CAPTION

    Call SetWindowLong(MDIForm1.hwnd, GWL_STYLE, lStyle)
    End Sub



  5. #5

    نقل قول: Maximized = False

    حالا یک مشکل جدید دارم
    دکمه MDIForm ، Maximized میشه غیرفعال کرد . با این کدی که دادیدResize نمیشه ولی این بزرگ شدن فرم کارو خراب می کنه .
    در واقع می خوام MaxButton براش False بشه .
    آخرین ویرایش به وسیله mirparsa : دوشنبه 23 شهریور 1388 در 01:23 صبح

  6. #6

    نقل قول: MIDI form تغییر BorderStyle کمک کنید

    این کد اصلاح شده برای خواسته جدید شما(قسمت بولد شده)


    Option Explicit
    Private Const WS_MINIMIZEBOX = &H20000
    Private Const WS_MAXIMIZEBOX = &H10000

    Private Const GWL_STYLE = (-16)
    Private Const WS_SYSMENU = &H80000
    Private Const WS_CAPTION = &HC00000
    Private Const WS_THICKFRAME = &H40000
    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 Const WS_BORDER = &H800000
    Public Sub EnableResizing(Form As Form, Enable As Boolean)
    Dim style As Long

    style = GetWindowLong(Form.hwnd, GWL_STYLE)
    If Enable Then
    style = style Or WS_THICKFRAME
    Else
    style = style And Not WS_THICKFRAME
    End If
    style = SetWindowLong(Form.hwnd, GWL_STYLE, style)
    End Sub


    Private Sub MDIForm_Load()
    Show
    EnableResizing Me, False
    Dim lStyle As Long
    lStyle = GetWindowLong(MDIForm1.hwnd, GWL_STYLE) 'Get's the WindowLong

    ' lStyle = lStyle And Not WS_BORDER
    ' lStyle = lStyle And Not WS_BORDER
    ' lStyle = lStyle And Not WS_CAPTION
    ' lStyle = lStyle And WS_BORDER And Not WS_CAPTION

    Call SetWindowLong(MDIForm1.hwnd, GWL_STYLE, lStyle)


    Dim st As Long
    st = GetWindowLong(Me.hwnd, GWL_STYLE)
    st = (Not WS_MINIMIZEBOX) And st
    st = (Not WS_MAXIMIZEBOX) And st
    SetWindowLong Me.hwnd, GWL_STYLE, st

    End Sub

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •