Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут
закрыты.
Читайте
требования к создаваемым темам.
-
remix
-
- Начинающий

-
-
- Сообщения: 9
- Зарегистрирован: 17.10.2004 (Вс) 19:14
- Откуда: Туапсе
-
remix » 02.11.2004 (Вт) 22:56
В программе получается большая форма.
вернее для 1280x1024 нормальная, а для 800x600 огромная
можно ли изменить масштаб формы и соответственно всех элементов
управления, чтобы на 800x600 было все видно.
И нельзя ли масштабировать форму в зависимости от разрешения.
-
Max!
-
- Постоялец

-

-
- Сообщения: 502
- Зарегистрирован: 03.04.2003 (Чт) 22:08
- Откуда: Литва
Max! » 02.11.2004 (Вт) 23:36
Проверяй какое на данный момент разрешение а уж патом масштабируй
- Код: Выделить всё
В модуль
Declare Function EnumDisplaySettings Lib "user32" Alias _
"EnumDisplaySettingsA" (ByVal lpszDeviceName As Long, _
ByVal iModeNum As Long, _
lptypDevMode As Any) As Boolean
Declare Function ChangeDisplaySettings Lib "user32" Alias _
"ChangeDisplaySettingsA" (lptypDevMode As Any, _
ByVal dwFlags As Long) As Long
Public Const EWX_LOGOFF = 0
Public Const EWX_SHUTDOWN = 1
Public Const EWX_REBOOT = 2
Public Const EWX_FORCE = 4
Public Const CCDEVICENAME = 32
Public Const CCFORMNAME = 32
Public Const DM_BITSPERPEL = &H40000
Public Const DM_PELSWIDTH = &H80000
Public Const DM_PELSHEIGHT = &H100000
Public Const CDS_UPDATEREGISTRY = &H1
Public Const CDS_TEST = &H4
Public Const DISP_CHANGE_SUCCESSFUL = 0
Public Const DISP_CHANGE_RESTART = 1
Public Const DM_DISPLAYFREQUENCY = &H400000
Public Const ENUM_CURRENT_SETTINGS = -1
Public Type typDevMODE
dmDeviceName As String * CCDEVICENAME
dmSpecVersion As Integer
dmDriverVersion As Integer
dmSize As Integer
dmDriverExtra As Integer
dmFields As Long
dmOrientation As Integer
dmPaperSize As Integer
dmPaperLength As Integer
dmPaperWidth As Integer
dmScale As Integer
dmCopies As Integer
dmDefaultSource As Integer
dmPrintQuality As Integer
dmColor As Integer
dmDuplex As Integer
dmYResolution As Integer
dmTTOption As Integer
dmCollate As Integer
dmFormName As String * CCFORMNAME
dmUnusedPadding As Integer
dmBitsPerPel As Integer
dmPelsWidth As Long
dmPelsHeight As Long
dmDisplayFlags As Long
dmDisplayFrequency As Long
End Type
В форму
Dim X, Y As Long
Dim typDevM As typDevMODE
EnumDisplaySettings 0, ENUM_CURRENT_SETTINGS, typDevM
X = typDevM.dmPelsWidth
Y = typDevM.dmPelsHeight
Text1.Text = X & "x" & Y
А патом по текстбоксу проверяй и масштабируй !

Max!
-
Faust
-
- Постоялец

-

-
- Сообщения: 649
- Зарегистрирован: 29.12.2003 (Пн) 13:38
- Откуда: лаборатория
-
Faust » 02.11.2004 (Вт) 23:42
Юзай объект Screen для определения текущего разрешения экрана, а дальше - соответсвенно изменяй .Width .Height .Left и .Top. Можешь это темное дело проворачивать в Form_Load или (в особенности, если у тебя форма максимизирована) Form_Resize.
Листинги не горят!
-
remix
-
- Начинающий

-
-
- Сообщения: 9
- Зарегистрирован: 17.10.2004 (Вс) 19:14
- Откуда: Туапсе
-
remix » 03.11.2004 (Ср) 23:31
так а масштабировать конкретно как, форму я допустим изменяю
а рисунок то надо масштабировать, а то он весь не виден получается.
-
Faust
-
- Постоялец

-

-
- Сообщения: 649
- Зарегистрирован: 29.12.2003 (Пн) 13:38
- Откуда: лаборатория
-
Faust » 04.11.2004 (Чт) 1:00
remix писал(а):так а масштабировать конкретно как, форму я допустим изменяю
а рисунок то надо масштабировать, а то он весь не виден получается.
Масштабирование рисунков - это отдельная тема, неоднократно упоминавшаяся на форуме. Поиск по ключевым словам PaintPicture и StretchBlt Вам поможет.
Листинги не горят!
-
Max!
-
- Постоялец

-

-
- Сообщения: 502
- Зарегистрирован: 03.04.2003 (Чт) 22:08
- Откуда: Литва
Max! » 04.11.2004 (Чт) 1:05
Размер картинки можно ещё так
- Код: Выделить всё
Dim Pictr As StdPicture
Set Pictr = LoadPicture("C:\Picture.bmp")
Call Form1.PaintPicture(Pictr, 100, 200)

Max!
Вернуться в Visual Basic 1–6
Кто сейчас на конференции
Сейчас этот форум просматривают: PetalBot, Yandex-бот и гости: 2