Ведь поидее форма должна стать овальной?

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

Ведь поидее форма должна стать овальной?

Сообщение xxxDemoNxxx » 22.06.2006 (Чт) 10:55

Private Sub cmbCreateOval_Click()
Dim lRgn As Long
lRgn = CreateEllipticRgn(0, 0, Me.ScaleWidth / Screen.TwipsPerPixelX, _
Me.ScaleHeight / Screen.TwipsPerPixelY)
SetWindowRgn Me.hWnd, lRgn, True
DeleteObject lRgn
End Sub
Где ошибка?
CreateEllipticRgn у меня выделяется эта фигня!
Ведь поидее форма должна стать овальной? :x :x :x

xxxDemoNxxx
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 20.06.2006 (Вт) 20:53

Сообщение xxxDemoNxxx » 22.06.2006 (Чт) 11:03

r = CreateEllipticRgn(10, 10, 100, 100)
или выделяет цыфру и пишет недопустимая внешняя процедура

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 22.06.2006 (Чт) 11:04

Для начала, учимся оформлять код тэгами code.
Затем познаём разницу между .width и .scalewidth.
После этого, узнаём о разнице между True и TRUE.
И наконец, читаем это для того, чтобы узнать, как следует обращаться с регионом, устанавливаемым форме.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Naked
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 207
Зарегистрирован: 27.10.2004 (Ср) 3:16
Откуда: Дальнегорск столица мира

Сообщение Naked » 23.06.2006 (Пт) 1:20

у меня вообще никакой ошибки нет, код твой работает

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 23.06.2006 (Пт) 1:32

Автор, видимо, не знает, что API надо объявлять. Код верный.

GSerg писал(а):Затем познаём разницу между .width и .scalewidth.
После этого, узнаём о разнице между True и TRUE.
И наконец, читаем это для того, чтобы узнать, как следует обращаться с регионом, устанавливаемым форме.


В чём тайный смысл этого ответа? :scratch:
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 23.06.2006 (Пт) 1:59

BV
Если ты думаешь, что код верный, ты тоже не знаешь, как обращаться с регионами и ве нивишь разницы между width и scalewidth.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 23.06.2006 (Пт) 2:44

Мда...

а) в чём ошибка этого кода?
б) какое отношение к вопросу имеет ScaleWidth/Height?
в) что ещё за True и TRUE?
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 23.06.2006 (Пт) 4:32

а) сходи по ссылке "это", представленной выше.
б) потому что делить scalewidth на .twipsperpixel - глупая ошибка, и будет работать только при scalemode = vbtwips.
в) API ожидает увидеть на -1, а 1. И хотя она всё равно будет сравнивать с нулём, всё же 1 правильнее.

2all: если неверный код у вас работает, это говорит не о том, что код верен, а о том, что вы запустили его в тех единственных условиях, когда он будет случайно работать.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 23.06.2006 (Пт) 4:53

а) то, что прочитай секцию remarks.
б) 99% вероятности, что у пользователя винда xp! поэтому я не буду включать никакие библиотеки в свою прогу! И офис всегда установлен на машине! Проверять ничего не нужно! И всегда доступен WMI! И главное, папка windows всегда располагается на диске c: - кто придумал эту идиотскую GetWindowsDirectory, кому она нужна??
в) несущественно. Не влияет по факту. Но могло бы влиять. Я предпочитаю передавать то, что описано в документации, а не то, что, по результатам некоторых экспериментов, вызывает нужный эффект.


[ADD]
Выше был пост от BV, на который я отвечал. Он успел его удалить.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 23.06.2006 (Пт) 9:10

папка windows всегда располагается на диске c: - кто придумал эту идиотскую GetWindowsDirectory, кому она нужна??
А вот и не всегда. Диск С там, где находится загрузчик, а директория Windows может находится на любом диске.Так же как и файл подкачки.
Лучший способ понять что-то самому — объяснить это другому.

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

Сообщение Хакер » 23.06.2006 (Пт) 9:44

GSerg писал(а): папка windows всегда располагается на диске c: - кто придумал эту идиотскую GetWindowsDirectory, кому она нужна??
.


У меня 9 дисков... и на каждом стоит какая-нибудь винда :)
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 23.06.2006 (Пт) 9:52

Antonariy
Ты очень не в теме.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

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

Сообщение alibek » 23.06.2006 (Пт) 10:03

Ну да, Windows можно установить на любой диск, не только C:
Lasciate ogni speranza, voi ch'entrate.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 23.06.2006 (Пт) 10:44

GSerg писал(а):Antonariy
Ты очень не в теме.
Аргументы?
Кроме того директория может называться и не Windows. В 2000м и ранее она вообще-то была WINNT.

Хотя я наверно действительно не в теме. Раз пять перечитал топик, но так и не понял, с какой стати ты набросился на бедную GetSystemDirectory.
Последний раз редактировалось Antonariy 23.06.2006 (Пт) 10:47, всего редактировалось 1 раз.
Лучший способ понять что-то самому — объяснить это другому.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 23.06.2006 (Пт) 10:46

Аргументы?

Ну, во-первых, ты не видел удалённого поста BV... хотя это, впрочем, и неважно - да просвятит тебя http://www.google.ru/search?hl=ru&q=define%3A%D0%B8%D1%80%D0%BE%D0%BD%D0%B8%D1%8F&lr=.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Summer.05
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 28.12.2005 (Ср) 20:19
Откуда: Москва

Сообщение Summer.05 » 23.06.2006 (Пт) 11:10

Посмотри и проанализируй примеры:

http://www.yandex.ru/yandsearch?text=VB%20произвольная%20форма

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 23.06.2006 (Пт) 11:21

GSerg
При живом общении ирония обычно передается интонацией, при виртуальном - смайликами :wink: Ну уж никак не гуглом.
Иначе могут неправильно понять.
Лучший способ понять что-то самому — объяснить это другому.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 23.06.2006 (Пт) 11:24

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

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 23.06.2006 (Пт) 11:25

Antonariy, Хакер: я вот как-то смог понять не только, что имел в виду GSerg, но даже что имел в виду BV в своём удалённом посте.
Наверное, я телепат? :-)
Изображение

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 23.06.2006 (Пт) 12:17

даже что имел в виду BV в своём удалённом посте
Ниасилил. Ниуспел :lol:
Лучший способ понять что-то самому — объяснить это другому.

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

Сообщение Хакер » 23.06.2006 (Пт) 12:17

tyomitch, нифига, ты Пользователь #1352

PS. Гхы :) а кто сказал что я не смог понять что он имел ввиду ?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.


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

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

Сейчас этот форум просматривают: Yandex-бот и гости: 68

    TopList