Как создать свою панель?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
MVG
Новичок
Новичок
 
Сообщения: 46
Зарегистрирован: 28.04.2004 (Ср) 15:07
Откуда: Одесса

Как создать свою панель?

Сообщение MVG » 30.12.2004 (Чт) 14:47

Задавал вопрос на "VB для новичков". К сожалению, подробного ответа не было.
Вопрос:
Как создать свою панель в MDI-форме аналогичную той, что внизу рабочего стола Windows-а, чтобы при открытии дочерних форм их кнопки появлялись бы на ней. Чтобы при развёрнутых дочерних окнах к ним был лёгкий доступ через эти кнопки?

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 30.12.2004 (Чт) 14:55

а чем тебя не устраивает Toolbar с кнопками в стиле checkbox в одной группе, чтобы при нажатии на одну все остальные отжимались?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 30.12.2004 (Чт) 15:05

Ему не Toolbar нужен, а Taskbar.
Lasciate ogni speranza, voi ch'entrate.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 30.12.2004 (Чт) 15:34

вот набросал что-то подобное:

Код: Выделить всё
'=================
'MDIpanel.vbp
'=================
Type=Exe
Form=Form1.frm
Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#..\..\..\WINNT\system32\stdole2.tlb#OLE Automation
Object={831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0; Mscomctl.ocx
Form=MDIForm1.frm
IconForm="MDIForm1"
Startup="MDIForm1"
HelpFile=""
Title="MDIpanel"
ExeName32="MDIpanel.exe"
Command32=""
Name="MDIpanel"
HelpContextID="0"
CompatibleMode="0"
MajorVer=1
MinorVer=0
RevisionVer=1
AutoIncrementVer=1
ServerSupportFiles=0
VersionLegalCopyright="© Konst Popov, 2004 "
CompilationType=0
OptimizationType=0
FavorPentiumPro(tm)=0
CodeViewDebugInfo=0
NoAliasing=0
BoundsCheck=0
OverflowCheck=0
FlPointCheck=0
FDIVCheck=0
UnroundedFP=0
StartMode=0
Unattended=0
Retained=0
ThreadPerObject=0
MaxNumberOfThreads=1


'=================
'MDIForm1
'=================
VERSION 5.00
Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "Mscomctl.ocx"
Begin VB.MDIForm MDIForm1
   AutoShowChildren=   0   'False
   BackColor       =   &H8000000C&
   Caption         =   "MDIForm1"
   ClientHeight    =   3855
   ClientLeft      =   60
   ClientTop       =   345
   ClientWidth     =   6165
   LinkTopic       =   "MDIForm1"
   StartUpPosition =   3  'Windows Default
   Begin MSComctlLib.Toolbar Toolbar1
      Align           =   2  'Align Bottom
      Height          =   330
      Left            =   0
      TabIndex        =   0
      Top             =   3525
      Width           =   6165
      _ExtentX        =   10874
      _ExtentY        =   582
      ButtonWidth     =   1138
      AllowCustomize  =   0   'False
      Style           =   1
      TextAlignment   =   1
      _Version        =   393216
      BeginProperty Buttons {66833FE8-8583-11D1-B16A-00C0F0283628}
         NumButtons      =   1
         BeginProperty Button1 {66833FEA-8583-11D1-B16A-00C0F0283628}
            Key             =   "group"
            Style           =   3
         EndProperty
      EndProperty
   End
End
Attribute VB_Name = "MDIForm1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Public Counter As Integer
Public frms As Collection

Private Sub MDIForm_DblClick()
Dim f As Form1

    Counter = Counter + 1

    Set f = New Form1
    f.Key = Counter
    f.Show

    frms.Add f, "s_" & Counter

End Sub

Private Sub MDIForm_Load()
    Set frms = New Collection
End Sub

Private Sub MDIForm_Unload(Cancel As Integer)
    Set frms = Nothing
End Sub

Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
Dim f As Form1
Dim i As Integer


    For i = 1 To frms.Count
        Set f = frms.Item(i)
        If f.Key = Button.Tag Then
            f.SetFocus
        End If
        Set f = Nothing
    Next i
   
End Sub


'=============================
'Form1.frm - Child form
'=============================
VERSION 5.00
Begin VB.Form Form1
   Caption         =   "Form1"
   ClientHeight    =   3195
   ClientLeft      =   60
   ClientTop       =   345
   ClientWidth     =   4680
   LinkTopic       =   "Form1"
   MDIChild        =   -1  'True
   ScaleHeight     =   3195
   ScaleWidth      =   4680
   ShowInTaskbar   =   0   'False
   Visible         =   0   'False
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Public Key As String

Private Sub Form_Load()
Dim bt As MSComctlLib.Button
Dim b As Boolean

Me.Caption = "Форма " & Key

b = False
For Each bt In MDIForm1.Toolbar1.Buttons
    bt.Value = tbrUnpressed
    If bt.Tag = Key Then
        b = True
        bt.Visible = False
    End If
Next bt

If Not b Then
    Set bt = MDIForm1.Toolbar1.Buttons.Add(, "s_" & Key, "Форма " & Key, MSComctlLib.tbrButtonGroup)
    bt.Tag = Key
    bt.Value = tbrPressed
    Set bt = Nothing
End If

End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
On Error Resume Next
    MDIForm1.Toolbar1.Buttons.Item("s_" & Key).Visible = False
    MDIForm1.frms.Remove "s_" & Key
End Sub

MVG
Новичок
Новичок
 
Сообщения: 46
Зарегистрирован: 28.04.2004 (Ср) 15:07
Откуда: Одесса

Сообщение MVG » 30.12.2004 (Чт) 17:12

Я новичок. :oops: Но попробую разобраться в присланном коде.
В любом случае, спасибо.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 1

    TopList