ايجاد فرم بدون منوبار (فرم خالي بدون هيچ دكمه اي)

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • Amir Ghasemiyan

    • 2013/09/20
    • 4599
    • 100.00

    ايجاد فرم بدون منوبار (فرم خالي بدون هيچ دكمه اي)

    سلام دوستان

    بعضي وقتا ما ميخوايم يه پيغامي به كاربر بديم ولي نميخوايم كاربر بتونه پيغام ما رو حذف كنه. يا مثلا ميخوايم يه فرمي داشته باشيم كه فقط دكمه هاي دلخواه ما رو داشته باشه. براي اين كار به فرمي كه منوبار نداشته باشه نياز داريم.
    در اين آموزش ميخوام يك فرم براتون بسازم كه منوبار نداشته باشه. منوبار نوار بالايي فرم هست كه دكمه هاي خروج و ماكزيمايز و مينيمايز روش هست.
    اين هم نمونه نهايي فرم

    Click image for larger version

Name:	form_without_manubar.jpg
Views:	1
Size:	23.7 کیلو بایت
ID:	143427

    خب حالا بريم سراغ آموزش:
    ابتدا يك فرم ميسازيم با هر محتوايي كه لازم داريم. سپس روي فرم كليك كرده و F7 رو ميزنيم تا وارد محيط كدنويسي فرم بشيم. (ميتونين روي فرم راست كليك كرده و گزينه view code رو بزنين)

    حالا اين كدها رو به ابتداي كدها اضافه ميكنيم:
    کد:
    Option Explicit
    Const GWL_STYLE = -16
    Const WS_CAPTION = &HC00000
    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 DrawMenuBar Lib "user32" (ByVal hWnd As Long) As Long
    Private Declare Function FindWindowA Lib "user32" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    
    
    Private Sub UserForm_Initialize()
        Dim lngWindow As Long, lFrmHdl As Long
        lFrmHdl = FindWindowA(vbNullString, Me.Caption) ' The UserForm must have a caption
        lngWindow = GetWindowLong(lFrmHdl, GWL_STYLE)
        lngWindow = lngWindow And (Not WS_CAPTION)
        Call SetWindowLong(lFrmHdl, GWL_STYLE, lngWindow)
        Call DrawMenuBar(lFrmHdl)
    End Sub
    به همين راحتي فرم ما به حالت دلخواه در اومد.

    براي راحتي شما دوستان يك نمونه هم به تاپيك پيوست ميكنم.
    فایل های پیوست شده
  • mokaram
    مدير تالار اکسل و بانک اطلاعاتی

    • 2011/02/06
    • 1805
    • 74.00

    #2
    با تشکر از امیر عزیز
    تو فایل پیوست علاوه بر حذف دکمه ضربدر ( خروج یا Exit ) حاشیه دور فرم هم حذف شده که امیدوارم مفید واقع بشه ( در ضمن روی ویندوزهای 64 بیتی هم جواب میده )
    فایل های پیوست شده
    [CENTER][IMG]http://forum.exceliran.com/signaturepics/sigpic909_10.gif[/IMG]
    [/CENTER]

    کامنت

    • Amir Ghasemiyan

      • 2013/09/20
      • 4599
      • 100.00

      #3
      نوشته اصلی توسط M_R_M
      با تشکر از امیر عزیز
      تو فایل پیوست علاوه بر حذف دکمه ضربدر ( خروج یا Exit ) حاشیه دور فرم هم حذف شده که امیدوارم مفید واقع بشه ( در ضمن روی ویندوزهای 64 بیتی هم جواب میده )

      آموزش اين فرم ها رو هم گذاشته بودم كه
      آموزشي: ايجاد فرم بدون منوبار (فرم خالي بدون هيچ دكمه اي)
      Last edited by Amir Ghasemiyan; 2014/12/07, 12:15.

      کامنت

      • mokaram
        مدير تالار اکسل و بانک اطلاعاتی

        • 2011/02/06
        • 1805
        • 74.00

        #4
        نوشته اصلی توسط amir ghasemiyan

        آموزش اين فرم ها رو هم گذاشته بودم كه
        آموزشي: ايجاد فرم بدون منوبار (فرم خالي بدون هيچ دكمه اي)
        بله حق با شماست
        منتها فایل شما رو سیستم من ( 64 بیتی) ارور میده ولی فایل خودم اجرا میشه دلیل چشه؟؟؟؟
        [CENTER][IMG]http://forum.exceliran.com/signaturepics/sigpic909_10.gif[/IMG]
        [/CENTER]

        کامنت

        • Amir Ghasemiyan

          • 2013/09/20
          • 4599
          • 100.00

          #5
          نوشته اصلی توسط M_R_M
          بله حق با شماست
          منتها فایل شما رو سیستم من ( 64 بیتی) ارور میده ولی فایل خودم اجرا میشه دلیل چشه؟؟؟؟
          جالبه.
          فايل من عبارت PtrSafe داره كه فايل شما نداره. در سايت خود آفيس اين توضيح رو براي عبارت توصيفي PtrSafe آورده:

          PtrSafe Indicates that the Declare statement is compatible with 64-bits. This attribute is mandatory on 64-bit systems.

          با اين توضيحات يعني در سيستم 64 بيتي اضافه كردن اين عبارت توصيفي اجباريه. بعد چطوري تو سيستم شما اجرا نميشه؟


          پ ن: پست ها به تاپيك مربوطه انتقال داده شد

          کامنت

          • misammisam
            مدير تالار حسابداری و اکسل

            • 2014/04/04
            • 892
            • 64.00

            #6
            سیستم من 64 بیتیه و فایلهای که امیر گذاشته هم کار میکنه ، اشکال باید جای دیگه ای باشه از 64 بیتی نیست !
            [CENTER][SIGPIC][/SIGPIC]
            [/CENTER]
            [CENTER][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][INDENT]
            [CENTER][SIZE=3][URL="https://affstat.adro.co/click/adf04053-f8a6-439a-9ac4-e6a7e6f4b455"][B]اينجا كليك نكنيا ![/B][/URL][/SIZE]
            [/CENTER]
            [/INDENT]

            [/FONT][/FONT][/FONT][/FONT][/FONT]
            [/CENTER]

            کامنت

            • Amir Ghasemiyan

              • 2013/09/20
              • 4599
              • 100.00

              #7
              نوشته اصلی توسط misammisam
              سیستم من 64 بیتیه و فایلهای که امیر گذاشته هم کار میکنه ، اشکال باید جای دیگه ای باشه از 64 بیتی نیست !
              فكر كنم بستگي به ورژن آفيس هم داشته باشه ميثم جان

              کامنت

              • Alireza
                مدير تالار تنظيمات اكسل

                • 2011/03/01
                • 648
                • 80.00

                #8
                امیر جان مدتی بود دنبال این کد بودم ممنونم از لطف و زحمت شما واقعا عالی بود
                [CENTER][COLOR=#ffd700]​[/COLOR]تنها راهي که به شکست مي انجامد، تلاش نکردن است
                [IMG]http://www.graphics18.com/wp-content/uploads/2010/12/yellow-flower23.gif[/IMG]
                [/CENTER]

                کامنت

                چند لحظه..