свойство Left кнопок Toolbar

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

свойство Left кнопок Toolbar

Сообщение Nikita » 30.09.2003 (Вт) 17:37

обычный toolbar, с края формы, хочется под кнопкой тулбара повесить форму, присваиваю форма.Left=кнопка.Left, и форма оказывается процентов на 20-30 дальше от левого края чем кнопка (т.е. Left формы на 20-30% больше Left кнопки, визуально)

что делать? форма и все остальное - меряется в twips, из-за чего проблема?

по высоте - все хорошо, форма.Top=кнопка.Top все правильно позиционирует

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 30.09.2003 (Вт) 17:41

Форма.Left = Кнопка.Left + Тулбар.Left

Вот так правильнее будет, так как кнопкин Left меряется от кнопкиного контейнера, а это - тулбар. А вот Left тулбара меряется от края формы. Поэтому его и надо прибавить.

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

Сообщение alibek » 30.09.2003 (Вт) 17:44

Координаты контролов задаются для внутренней области формы, в них не входит граница окна и заголовок формы.
Определять внутренние координаты можно через API (не помню как) или кустарно, (Width-ScaleWidth)/2 -- ширина вертикальной границы, высота горизонтальной границы такая же, а высота заголовка вместе со строкой меню (Height-ScaleHeight)-(Width-ScaleWidth).
Lasciate ogni speranza, voi ch'entrate.

Nikita
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 05.02.2003 (Ср) 15:09
Откуда: Russia

Сообщение Nikita » 30.09.2003 (Вт) 21:09

в том то и дело что left внешней формы 0, в рассматриваемом случае тулбар находится на краю формы, а форма на краю экрана ..

ладно, буду apiшными искать

ShadowCaster
Бывалый
Бывалый
 
Сообщения: 254
Зарегистрирован: 24.05.2002 (Пт) 10:52

Сообщение ShadowCaster » 01.10.2003 (Ср) 8:57

А кто бордер учитывать будет? Ставь ScaleMode = vbPixel и форма.Left=кнопка.Left + 2 (возможно и больше/меньше).

Nikita
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 05.02.2003 (Ср) 15:09
Откуда: Russia

Сообщение Nikita » 01.10.2003 (Ср) 10:32

бордер тут особо не влияет, left кнопки = 10568.693, форме ставлю эти 10568, а на самом деле у кнопки left приблизительно 7500-8000, сдвиг в 2500 twips это порядка 100 пикселов, заметно не 2, а как получить этот "настоящий" left apiшными функциями неясно, поскольку у кнопок тулбара нет hwnd

можно на тулбар повесить свою кнопку, у нее есть hwnd, но опять же, нужно чтобы эта кнопка была сразу за последней обычной кнопкой, во-вторых, обычный commandbutton не очень подходит, поскольку он совсем не похож на кнопку тулбара, (она плоская, при наведении мышки чуть приподнимается, а коммандбатон всегда объемный, независимо от appearence=flat/3D, только когда flat оно еще подглючивает некрасиво рисуя)

Nikita
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 05.02.2003 (Ср) 15:09
Откуда: Russia

Сообщение Nikita » 01.10.2003 (Ср) 10:56

вопрос снимается, то была ошибка на засыпку :)


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

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

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

    TopList