Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2015, 11:51   #1
Mat Bourn
Форумчанин
 
Регистрация: 13.04.2015
Сообщений: 140
По умолчанию Нужна помощь c++

Добрый день. Я хочу отрисовать границы Label в с++.
Вот код.
Код:
Label1->Canvas->Pen->Color = clBlack;
Label1->Canvas->Pen->Width = 4;
Label1->Canvas->Pen->Style = psSolid;

Label1->Canvas->MoveTo(0,0);
Label1->Canvas->LineTo(73,0);
Label1->Canvas->LineTo(73,33);

Label1->Canvas->LineTo(0,33);
Label1->Canvas->LineTo(0,-33);
Но вот проблема.
Если его повесить на событие OnClick то все работает, отрисовываются границы. А если на OnShow ничего ни рисует. Почему?

Последний раз редактировалось Stilet; 05.05.2015 в 11:59.
Mat Bourn вне форума Ответить с цитированием
Старый 05.05.2015, 12:00   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Насколько я понимаю OnShow срабатывает не каждый раз когда Лейбл требует отрисовки. ИМХО тут нужно другое событие юзать, или обрабатывать сообщение WM_PAINT.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.05.2015, 19:36   #3
Mat Bourn
Форумчанин
 
Регистрация: 13.04.2015
Сообщений: 140
По умолчанию

Повесил код на событие формы OnPaint.

Код:
 Label7->Canvas->Pen->Color = clBlack;
 Label7->Canvas->Pen->Width = 4;
 Label7->Canvas->Pen->Style = psSolid;

 Label7->Canvas->MoveTo(0,0);
 Label7->Canvas->LineTo(97,0);
 Label7->Canvas->LineTo(97,33);

 Label7->Canvas->LineTo(0,33);
 Label7->Canvas->LineTo(0,-33);
Когда Label->Transparent = true, то все отрисовывается. А когда Label->Transparent = false, то просто применяется цвет Labela без отрисовки. Почему ?

Последний раз редактировалось Mat Bourn; 06.05.2015 в 22:07.
Mat Bourn вне форума Ответить с цитированием
Старый 07.05.2015, 00:37   #4
Mat Bourn
Форумчанин
 
Регистрация: 13.04.2015
Сообщений: 140
По умолчанию

Как хотел так и сделал.
Label7->Transparent поставил true, и повесил код на событие формы OnPaint.

Код:
 Label7->Canvas->Pen->Color = clGray;
 Label7->Canvas->Brush->Color = clBtnShadow;
 Label7->Canvas->Pen->Width = 3;
 Label7->Canvas->Pen->Style = psSolid;
 Label7->Canvas->Rectangle(0,0,97,33);
В результате получился серый Label с темной окантовкой.

Но возникла еще одна проблема. При сворачивании формы надпись находящаяся на Label пропадает. Кто скажет почему и как это исправить ?

Последний раз редактировалось Mat Bourn; 07.05.2015 в 19:32.
Mat Bourn вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна помощь. Alex_n Microsoft Office Word 4 11.02.2015 22:58
нужна помощь! s20 Общие вопросы C/C++ 0 19.10.2009 00:13
Очень нужна помощь c матрицами, макросами в Excel. Заранее благодарен(поверьте, очень-очень нужна помощь) Farridjan Помощь студентам 1 03.07.2009 12:24
Очень нужна помощь с написанием программы... срочно(буду благодарен за помощь) 5Paladin5 Помощь студентам 3 02.07.2009 09:12
помощь нужна Гаджи Паскаль, Turbo Pascal, PascalABC.NET 0 29.04.2009 20:05