![]() |
|
Модераторы: bsa |
![]()
|
|
| N1ko |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 383 Регистрация: 30.12.2007 Где: Киев Репутация: нет Всего: нет |
Здравствуйте... У меня возникла проблемка. Подскажите пожалуйста как с ней боротться. Перевожу программу в графический режим, создаю несколько объектов.(не принципиально:круги,квадраты и тп). Получаю из этого какое то изображение. Создаю ещё один квадратик в левом верхнем углу с красными границами. Мне нужно что бы при его движении он ничего не рисовал и при этом не зарисовывал ранее нарисованые предметы. то есть я хочу что бы он действовал как кисточка до активации. Просто двигалась по экрану, но ничего не рисовала. Если это возможно, объясните как сделать пожалуйста.
И ещё один вопрос, который я думаю поможет мне в решение этой проблемы... Когда я учил паскаль, помню что там можно было блокировать прямоугольную область.(Только вот оператора уже не помню). Есть ли в С++ оператор, выполняющий такие же действия? Это сообщение отредактировал(а) N1ko - 17.1.2008, 01:06 |
|||
|
||||
| orthrus |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 400 Регистрация: 30.10.2007 Где: г. Усть-Илимск(Ир кутская обл.) Репутация: нет Всего: 16 |
Тебе надо смотреть в сторону PutImage() и GetImage()
-------------------- У того, кто ничего не делает, всегда много помощников.© Л.Н. Толстой ![]() |
|||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 6 Всего: 93 |
Что означает "блокировать область"? Что делал этот "оператор"? В BC++ 3.1 есть все те же "операторы"(по научному - функции), что были у тебя в паскале в модуле graph. Вообще, в С++ как таковом ничего подобного нет(т.е. обучаешься ты тому, что в последствии никогда не сможешь применить) и, если выбор компилятора не обусловлен требованием преподавателей, то настоятельно рекомендую сменить его на что-нибудь более современное. -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| N1ko |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 383 Регистрация: 30.12.2007 Где: Киев Репутация: нет Всего: нет |
Подскажи тогда пожалуйста на чьих продуктах сейчас более удобно, практично и актуально работать:Borland или Microsoft? Я почему то для себя остановился на последнем... И какая версия С++ самая последняя из продуктов Microsoft? |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
||||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 6 Всего: 93 |
N1ko, начать изучать лучше с Dev-C++ или Сode::Blocks - они наиболее удобны для новичков(в программировании) и, в общем случае, не содержат никаких примочек для написания приложений с GUI. Если же хочется с ходу начать с GUI-приложений(чего я делать не советую), то проще всего будет начать с BCB.
Это сообщение отредактировал(а) archimed7592 - 17.1.2008, 19:05 -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| N1ko |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 383 Регистрация: 30.12.2007 Где: Киев Репутация: нет Всего: нет |
Спасибо за помощ. И ещё один вопрос... Может быть и глупый, но я не могу его разобрать. ЧТо значит последний параметр в операторе getline()? Первые 4 - координаты, а вот для чего последний никак не помуйму. Пмогите неведующему
void far getimage(int left, int top, int right, int bottom,void far *bitmap); |
|||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 6 Всего: 93 |
Только учти, что если (right - left) * (bottom - top) будет превышать значение 65535, то ничего хорошего у тебя не получится... -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| orthrus |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 400 Регистрация: 30.10.2007 Где: г. Усть-Илимск(Ир кутская обл.) Репутация: нет Всего: 16 |
Это указатель на область памяти в которой будет храниться копируемое тобой изображение. -------------------- У того, кто ничего не делает, всегда много помощников.© Л.Н. Толстой ![]() |
|||
|
||||
| sprata |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 6.9.2008 Репутация: нет Всего: нет |
archimed7592, то есть скопировать большое окно, например 500*500 пикселов, для реализации перетаскивание окна мышью никак не получится ? Может быть есть какой-нибудь способ ? Это сообщение отредактировал(а) sprata - 14.9.2008, 01:18 |
|||
|
||||
| Mayk |
|
|||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 3 Всего: 134 |
для выделения памяти можно использовать farmalloc. а вообще 500x500 это 250 кб. половина доступной памяти(без всяких himem'ов, ems'ов, xms'ов). учитывая что часть памяти же отъедатся IDE, всё вообще плачевно: нехватка памяти может всплыть очень скоро. советую перечитать
-------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
|||
|
||||
| sprata |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 6.9.2008 Репутация: нет Всего: нет |
Mayk, спс за ответ. Выбор компилятора обусловлен именно требованием преподавателей
Так я так и делаю:
Но при запуске он ничего не рисует. Я пробовал выводить на экран значение переменной size, он выводит 65 535, а 500*500 = 250 000, что значительно больше доступной памяти. В режиме SVGA 256 цвтов1024*768 Максимальный размер картинки который получается сохранить это 250*250 пикселов = 62500. А в режиме VGAHI 16 цветов 640*480 - 350*350 = 122 500 / 2 = 61 250. Получается, что размеры картинок крутятся вокруг этого числа 65 535. Можно ли в настройках BC 3.11 увеличить кол-во памяти ? |
||||
|
|||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Нельзя. Это ограничения архитектуры (реальный режим 8086) - сегмент процессора имеет размер 64K (64*1024 = 65536, так как число 0 (NULL) - это код ошибки, то через farmalloc доступно только 65535 байт). Решение проблемы - защищенный режим. Но для этого нужен другой компилятор, который создает код под ОС, работающую в защищенном режиме. |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |