IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Пропадает результат picturebox.
сообщение
Сообщение #1


Профи
****

Группа: Пользователи
Сообщений: 652
Пол: Мужской
Реальное имя: Алексей

Репутация: -  20  +


Собственно,есть проэкт в VS 2008 C++,у фрейма есть кнопка и picturebox.По нажатии на кнопку должна отрисоваться сетка из прямоугольников.(100х100 где то) Дело в том что после нажания кнопки происходит отрисовка,но по завершению результат пропадает,приходится нажимать 2 раз,и тогда от нормально и длительно отображается,хотя иногда тоже пропадает.Мне непонятно почему такое может происходить??Еще мне немного не нравится та скорость,с которой происходит отрисовка,можно ли ее как нибудь ускорить?Дело в том,что потом для каждой "клетки" будет задаваться свой собственный цвет.

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)
{
const int N=100;
double size=1.0;
double x,y;
double h=size/N;
double Xkoef= (pictureBox1->Width)/size;
double Ykoef= (pictureBox1->Height)/size;
Graphics^ g = pictureBox1->CreateGraphics();
Pen^ bluePen = gcnew Pen( Color::Blue,1.0f );
SolidBrush^ hBrush = gcnew SolidBrush (Color::Red);
for ( int i=1 ; i<=N ; i++)
{
for ( int j=0 ; j<=N ; j++)
{
x= (i)*h * Xkoef;
y= (j)*h * Ykoef;
g->FillRectangle( hBrush,Rectangle(x, y,(x + h*Xkoef),(y + h*Ykoef)));
g->DrawRectangle(bluePen,Rectangle(x, y,(x + h*Xkoef),(y + h*Ykoef)));
}
}
}



Сообщение отредактировано: Krjuger -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

Репутация: -  627  +


Цитата
А, это не ты был? Типа я поверил, гы.
mad.gif Знаешь, что? Свои фантазии оставь при себе. Я не собираюсь тут еще и за чужие слова отчитываться. Я здесь зарегистрировался под ником IUnknown, в статус через 10 секунд после регистрации записал, под каким ником я еще известен в сети. Ни от кого скрываться я и не думал (происхождение ника объяснить, или сам догадаешься? Если имел дело с интерфейсами - можешь и догадаться) Это понятно? Я надеюсь, к этому вопросу мы больше не будем возвращаться...

Цитата
Только делать это надо не через SetPixel, а через то самое "нельзя, но если очень хочется, то можно", которое ты так стремишься сделать "нельзя".
Работа у меня такая, что "нельзя" - это значит "нельзя". А если очень хочется, и делаешь "можно" - то потом это падает. Причем падает так, и тогда, что исправлять это приходится очень большой ценой. И все равно в итоге "нельзя" - оказывается "нельзя".

Цитата
Понимаешь, все запретные концепции хоть и мешают жить большую часть времени, но когда они становятся смертельно нужны, то приходится опускаться и до них.
Без комментариев. Почему - см. ниже.

Цитата
попиксельно вывести массив в DC, созданный через CreateDIBSection - это вообще простой цикл, выполняется очень быстро.
Быстро - когда неуправляемый код вызывается из неуправляемого же. А вызов unmanaged кода из managed - потеря производительности. В разы... Не забыл? Затраты на вызов могут перекрыть прирост производительности, ага. Было смертельно нужно? Ну, и получил тормоза при смешивании кодов... Чья концепция оказалась в выигрыше?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Krjuger   Пропадает результат picturebox.   5.05.2011 22:08
-TarasBer-   А сколько пикселей занимает 1 прямоугольник? Если …   5.05.2011 23:56
IUnknown   Krjuger, тип RectangleF как-то больше подходит для…   6.05.2011 0:13
-TarasBer-   Кстати, обход по икс должен быть внутри обхода по …   6.05.2011 0:41
Krjuger   Ну просто тут такое дело,что эта задача напрямую с…   6.05.2011 1:03
IUnknown   Тогда тебе волноваться не о чем. Распахнутое на ве…   6.05.2011 1:18
-TarasBer-   > Распахнутое на весь экран окно (при расширени…   6.05.2011 1:50
IUnknown   Нет, у меня по-прежнему E4400. Чтоб применить норм…   6.05.2011 2:25
TarasBer   > А StretchBlt тебе что, очень поможет (даже ес…   6.05.2011 14:03
IUnknown   Это ты о чем, вообще? :blink: Блин... Да ты пой…   6.05.2011 14:18
TarasBer   > Это ты о чем, вообще? А, это не ты был? Ти…   6.05.2011 14:36
IUnknown   :mad: Знаешь, что? Свои фантазии оставь при себе.…   6.05.2011 16:54
TarasBer   > А если очень хочется, и делаешь "можно…   6.05.2011 17:04
Krjuger   Я благодарен за такой интерес к этой теме,но после…   6.05.2011 19:26
IUnknown   Значит, они все-таки будут. То есть, цветов будет …   6.05.2011 20:42
Krjuger   Да я сам чето тормознул,повелся на то,что преподав…   6.05.2011 22:41
IUnknown   Зачем же выделять память, если можно сделать измен…   6.05.2011 23:16
Krjuger   Спасибо за совет,сам бы врятли додумался :) Новую …   7.05.2011 3:33
IUnknown   Молодец. Перенаправить вывод в stdout в файл - дог…   7.05.2011 5:43
Krjuger   Ну а тут возникли некоторые проблемы. Дело в том,ч…   7.05.2011 17:40
IUnknown   Что именно не понятно? Вроде все прозрачно: читаем…   7.05.2011 19:06
Krjuger   Возвращаясь к тем же баранам.Тот код ,что ты скиды…   8.05.2011 15:18
-TarasBer-   > ,что число дабл храниться в в памяти с точкой…   8.05.2011 15:48
Krjuger   Да решение оказалось действительно достаточно прос…   8.05.2011 16:39
Krjuger   В общем я наконецто доделал.Протестировал на разны…   8.05.2011 18:22


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 20.05.2024 0:57
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name