Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Status Bar Добавлено: 28.03.04 13:13  

Автор вопроса:  MACROS
Я подключил Microsoft Windows Common Controls и кинул на форму Status Bar. У меня получается изменять инфу в нем только при разработке проги (Design) в пункте свойств (Custom). А нужно чтобы в ходе работы проги инфа в нем менялась на заданные переменные (именно переменные, а не просто текст). Кто знает, подскажите.

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 @CyRax PTR



ICQ: 204447456 

Вопросов: 28
Ответов: 664
 Web-сайт: basicproduction.nm.ru/
 Профиль | | #1
Добавлено: 28.03.04 16:19

Попробуй на API

Откуда взял не помню. Но у меня прекрасно работает.

Правда для API-шного статуса.

Public Enum SBStyleConstants

Normal = 0

NoBorders = &H100 'Без рамки

PopOut = &H200 'Выдавленная

RTLReading = &H400 'Вывод текста слева направо.

End Enum

Private Type SB_PANEL_TYPE

Width As Long 'Ширина панели в пикселях (отсчёт от левого края)

'или -1 для прижатия панели к правому краю

Text As String 'Текст панели

Style As Long 'Стиль панели

End Type

Public Sub StatusBarSetText(HandleSB As Long, Index As Integer, Style As SBStyleConstants, Text As String)

Dim SP() As SB_PANEL_TYPE 'Набор панелей

ReDim SP(Index)

SP(Index).Text = Text

SP(Index).Style = Style

'Проверка создания строки

If HandleSB = 0 Then Exit Sub

'Для установки текста SendMessage в lParam передаётся текст панели(точнее его адрес)

'В wParam передаётся номер панели и стиль.

'Объявляем байтовый массив

Dim PStr() As Byte

'Подгоняем размер

ReDim PStr(300)

Dim strTemp As String

'Подгоняем длину

strTemp = SP(Index).Text & String$(300 - Len(SP(Index).Text), 32)

'Преобразуем строку в байтовый массив

PStr = StrConv(strTemp, vbFromUnicode)

'Отправляем сообщение SB_SETTEXTA

Const SB_SETTEXTA = WM_USER + 1 '( SB_SETTEXTW = WM_USER + 11)

SendMessage HandleSB, SB_SETTEXTA, Index Or SP(Index).Style, PStr(0)

End Sub

Ответить

Номер ответа: 2
Автор ответа:
 MACROS



Вопросов: 24
Ответов: 21
 Профиль | | #2 Добавлено: 28.03.04 18:06

Что-то не понятно. Скопировал  - не работает. Куда этот код копировать в модуль или в форме можно? И я так  и не понял, какой оператор нужно написать чтобы например присвоить 1 окошку в СтатусБаре "hello", а во втором например чтобы выводилось время - Константа Time.

Например,
Private Sub Timer1_Timer()
..... ' что здесь писать, чтобы присвоить значение окошкам?
.....
End Sub

Ответить

Номер ответа: 3
Автор ответа:
 @CyRax PTR



ICQ: 204447456 

Вопросов: 28
Ответов: 664
 Web-сайт: basicproduction.nm.ru/
 Профиль | | #3
Добавлено: 28.03.04 23:45

Попробуй так.

StatusBarSetText StatusBar.hWnd, NomerOkoshka, Normal, StringVar

Это для модуля. Если хочешь разместить в форме - замени Public на Private.

Ответить

Номер ответа: 4
Автор ответа:
 MACROS



Вопросов: 24
Ответов: 21
 Профиль | | #4 Добавлено: 29.03.04 21:23
У тебя в коде, которы йнадо вставлять в модуль не правильны две последние  строчки: пишется типа WM_USER ... (и т.д.) Такая же беда и с последней строчкой. Посмотри плиз, как там правильно написать.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам