vb6: динамически размещать элемент управления изображением на кадре - PullRequest
0 голосов
/ 29 октября 2018

Я работаю над новым UI-элементом в программе vb6. Мне нужно динамически размещать картинки на 2 линии разноцветного фона:

Я опробовал две разные идеи, но ни одна из них не работает:

Идея 1

Я использовал элемент управления изображением и назначил изображение элементу управления. Затем я установил свойства left, top, with и hight в значения, в которые я хочу поместить изображение. Изображение было размещено в правильном положении, но не на переднем плане на рамке, а на заднем плане (за цветной рамкой).

Может кто-нибудь сказать мне, как я могу разместить элемент управления изображения на переднем плане (на рамке зеленого цвета)? Мне нужно поместить эти элементы управления изображениями динамически из кода в работающей программе.

Идея 2

Во втором sulution я пытался использовать picturebox вместо управления изображением. Picturebox можно без проблем разместить на цветном фоне (рамке). Здесь проблема в том, что загружаемое изображение должно быть масштабировано до размера свойства изображения в картинке. Изображение загружается в коробку с кодом: Picture.Picture = LoadPicture("F:\img.JPG")

Кто-нибудь знает, как я могу масштабировать это изображение до размера Picturebox?

Может кто-нибудь помочь мне выполнить одно из решений. В принципе, я бы предпочел использовать элементы управления изображением, если можно разместить их на переднем плане в кадре.

1 Ответ

0 голосов
/ 29 октября 2018

Я собираюсь догадаться, что после создания элемента управления изображением вы перемещаете его в рамку. Если это так, вот почему управление находится за рамкой. Вы действительно хотите, чтобы изображение было внутри кадра. Ключом для этого является установка свойства Container.

Dim img As Image

Set img = Me.Controls.Add("VB.Image", "Image1")

If Not img Is Nothing Then
   img.Move 200, 200, 400, 400
   img.Stretch = True
   img.Picture = LoadPicture("your image.jpg")
   Set img.Container = Frame1
   img.Visible = True
End If
...