Высота ToolBar

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

Высота ToolBar

Сообщение Gogic » 18.01.2012 (Ср) 14:53

Не могу изменить высоту стандартного тулбара.
В режиме проектирования высота меняется, однако при запуске все равно показывает суженное значение.
Последний раз редактировалось Gogic 18.01.2012 (Ср) 14:54, всего редактировалось 1 раз.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Высота ToolBox

Сообщение Хакер » 18.01.2012 (Ср) 14:54

Что за тулбокс? Не тулбар ли случаем?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Gogic
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 120
Зарегистрирован: 24.08.2008 (Вс) 13:19

Re: Высота ToolBar

Сообщение Gogic » 18.01.2012 (Ср) 14:55

Исправил. VB6.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Высота ToolBar

Сообщение Хакер » 18.01.2012 (Ср) 15:09

На что претендуешь? Высота тулбара кратна высоте иконки и равна во всех случаев, кроме случаев, когда не удаётся поместить все кнопки на одну строчку.

И лично у меня в режиме проектирования высота тоже не устанавливается произвольной. Проверил на 5-ой и 6-ой версие ocx-обёртки над виндовым контроллом. А ты о чем говоришь?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Gogic
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 120
Зарегистрирован: 24.08.2008 (Вс) 13:19

Re: Высота ToolBar

Сообщение Gogic » 18.01.2012 (Ср) 15:23

Хакер писал(а):И лично у меня в режиме проектирования высота тоже не устанавливается произвольной. Проверил на 5-ой и 6-ой версие ocx-обёртки над виндовым контроллом. А ты о чем говоришь?


Устанавливается, если изменить свойство ButtonHeight.

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

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

Какие решения данной проблемы можете посоветовать? GDI+ не предлагать :)

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Высота ToolBar

Сообщение Хакер » 18.01.2012 (Ср) 15:32

Gogic писал(а):А вообще суть вопроса такая, мне нужно сделать прозрачный пикчербокс, но SetLayeredWindowAttributes применима только к window, и его потомкам, а тулбар вроде как является потомком окна формы.
В общем, я хотел создать тулбар, поместить на него пикчербокс, и задавать уже полупрозрачность тулбара.


Полный бред. PictureBox является таким же ребёнком окна, как и тулбар, и даже лучше.

Для каких целей тебе полупрозрачный PictureBox?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Gogic
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 120
Зарегистрирован: 24.08.2008 (Вс) 13:19

Re: Высота ToolBar

Сообщение Gogic » 18.01.2012 (Ср) 16:08

Хакер писал(а):Для каких целей тебе полупрозрачный PictureBox?


Хочу сделать прозрачный радиальный прогрессбар.

Ну вот, по аналогии с формой прозрачность сделать не получилось. Кстати говоря,с тулбаром тоже не вышло :)

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Высота ToolBar

Сообщение Хакер » 18.01.2012 (Ср) 17:08

Ну и рисуй прозрачный радиальный прогрессбар. Зачем привлекать такие гигантские сущности, как слоёные окна?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Gogic
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 120
Зарегистрирован: 24.08.2008 (Вс) 13:19

Re: Высота ToolBar

Сообщение Gogic » 18.01.2012 (Ср) 20:44

Кстати, я заметил, что некоторые вещи, которые работают с формами почему-то не работают с пикчербоксом, хотя контекст устройства (hDC) на первый взгляд ничем не отличается. Вот, например, загрузка png через GDI+

Код: Выделить всё
Public Enum GpStatus
    Ok = 0
    GenericError = 1
    InvalidParameter = 2
    OutOfMemory = 3
    ObjectBusy = 4
    InsufficientBuffer = 5
    NotImplemented = 6
    Win32Error = 7
    WrongState = 8
    Aborted = 9
    FileNotFound = 10
    ValueOverflow = 11
    AccessDenied = 12
    UnknownImageFormat = 13
    FontFamilyNotFound = 14
    FontStyleNotFound = 15
    NotTrueTypeFont = 16
    UnsupportedGdiplusVersion = 17
    GdiplusNotInitialized = 18
    PropertyNotFound = 19
    PropertyNotSupported = 20
End Enum

Public Type GdiplusStartupInput
    GdiplusVersion As Long
    DebugEventCallback As Long
    SuppressBackgroundThread As Long
    SuppressExternalCodecs As Long
End Type

Public Declare Function GdiplusStartup Lib "gdiplus" (token As Long, inputbuf As GdiplusStartupInput, Optional ByVal outputbuf As Long = 0) As GpStatus
Public Declare Function GdiplusShutdown Lib "gdiplus" (ByVal token As Long) As GpStatus

Public Declare Function GdipCreateFromHDC Lib "gdiplus" (ByVal HDC As Long, graphics As Long) As GpStatus

Public Declare Function GdipLoadImageFromFile Lib "gdiplus" (ByVal FileName As String, image As Long) As GpStatus

Public Declare Function GdipGetImageWidth Lib "gdiplus" (ByVal image As Long, Width As Long) As GpStatus
Public Declare Function GdipGetImageHeight Lib "gdiplus" (ByVal image As Long, Height As Long) As GpStatus

Public Declare Function GdipDrawImageRect Lib "gdiplus" (ByVal graphics As Long, ByVal image As Long, ByVal x As Single, ByVal y As Single, ByVal Width As Single, ByVal Height As Single) As GpStatus
Public Declare Function GdipDisposeImage Lib "gdiplus" (ByVal image As Long) As GpStatus
Public Declare Function GdipDeleteGraphics Lib "gdiplus" (ByVal graphics As Long) As GpStatus

Public token As Long

Public Function LoadAndDrawImage(ByVal FileName As String, ByVal hDestDC As Long, ByVal DestWidth As Long, ByVal DestHeight As Long) As GpStatus
    Dim lngWidth As Long, lngHeight As Long
    Dim graphics As Long, img As Long
    Dim GpInput As GdiplusStartupInput
    Dim tmp_status As GpStatus
   
    GpInput.GdiplusVersion = 1
    tmp_status = GdiplusStartup(token, GpInput)
        If tmp_status <> Ok Then GoTo The_End:
    tmp_status = GdipCreateFromHDC(hDestDC, graphics)
        If tmp_status <> Ok Then GoTo The_End:
    tmp_status = GdipLoadImageFromFile(StrConv(FileName, vbUnicode), img)
        If tmp_status <> Ok Then GoTo The_End:
    tmp_status = GdipGetImageHeight(img, lngHeight)
        If tmp_status <> Ok Then GoTo The_End:
    tmp_status = GdipGetImageWidth(img, lngWidth)
        If tmp_status <> Ok Then GoTo The_End:
    tmp_status = GdipDrawImageRect(graphics, img, 0, 0, DestWidth, DestHeight) 'lngWidth, lngHeight)
        If tmp_status <> Ok Then GoTo The_End:
    tmp_status = GdipDisposeImage(img)
        If tmp_status <> Ok Then GoTo The_End:
    tmp_status = GdipDeleteGraphics(graphics)
        If tmp_status <> Ok Then GoTo The_End:
    tmp_status = GdiplusShutdown(token)
The_End:
    LoadAndDrawImage = tmp_status
End Function


Код: Выделить всё
Private Sub Command3_Click()
Me.AutoRedraw = True
    LoadAndDrawImage App.Path & "\1.png", Me.HDC, Me.ScaleWidth, Me.ScaleHeight
    Me.Refresh
End Sub


Вот. А стоит заменить в примере Me на Picture1, как ничего не происходит.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Высота ToolBar

Сообщение Хакер » 18.01.2012 (Ср) 20:52

Ты же противник GDI+?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Высота ToolBar

Сообщение Хакер » 18.01.2012 (Ср) 20:58

В общем, тема тулбара себя исчерпала, так что закрываю.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.


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

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

Сейчас этот форум просматривают: AhrefsBot, Google-бот и гости: 9

    TopList  
cron