Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 162
от 30.07.2005, 14:20

Администратор:Калашников О.А.
В рассылке:Подписчиков: 188, Экспертов: 26
В номере:Вопросов: 2, Ответов: 4


Вопрос № 23972: Здравствуйте, уважаемые эксперты! Я по поводу вопроса ? 23365(про bitmap и dc) Спасибо за ответы, про рисование все понятно, но я бы хотел еще кое-что узнать. Суть следующего вопроса такова: В моем приложении на окне нарисовано мной н...
Вопрос № 23983: Добрый день! В Delphi можно сделать подобное: procedure TForm1.Click(Sender: TObject); begin TButton(Sender).Tag := 10; end; Как сделать такое же в Builder'е? Т.е. распознать кнопку? Заранее спасибо! ..

Вопрос № 23.972
Здравствуйте, уважаемые эксперты!
Я по поводу вопроса ? 23365(про bitmap и dc)
Спасибо за ответы, про рисование все понятно, но я бы хотел еще кое-что узнать.
Суть следующего вопроса такова:
В моем приложении на окне нарисовано мной несколько битмапов, и мне нужно очистить окно от них(всех)
я мог бы делать так:
ShowWindow(hWnd, SW_HIDE);
ShowWindow(hWnd, SW_SHOW);
где hWnd моего окна
(при обработке WM_PAINT ничего не рисуется заново),
либо рисуя поверх всех их еще один bmp, цвет которого совпадает с цветом той области окна,
где я рисовал все битмапы,
но, насколько мне кажется, существует более красивый и правильный способ.
Если да, то какой?

Заранее благодарен
Отправлен: 24.07.2005, 18:56
Вопрос задал: Dts (статус: Посетитель)
Всего ответов отправлено: 2

Отвечает: Ddeedd
Здравствуйте, Dts!

Да способов куча, если обработчик WM_PAINT заполняет окно чем нибудь - например заливает черным цветом(например через ExtFloodFill), то достаточно дать InvalidateRect(hWnd, 0, true), или просто так взять DC и ExtFloodFill-нуть все/нужную часть окна - но будет возможно моргание из-за отсутствия верт. синхронизации. А использовать битмапы и прятать/показывать окно - это уж слишком.
Ответ отправил: Ddeedd (статус: 3-ий класс)
Отправлен: 24.07.2005, 19:47

Отвечает: Kazarov Vitaliy
Здравствуйте, Dts!
Вызвать OnPaint(), либо послать сообщение WM_PAINT :)
Ответ отправил: Kazarov Vitaliy (статус: 2-ой класс)
Отправлен: 25.07.2005, 09:35


Вопрос № 23.983
Добрый день!
В Delphi можно сделать подобное:

procedure TForm1.Click(Sender: TObject);
begin
TButton(Sender).Tag := 10;
end;

Как сделать такое же в Builder'е? Т.е. распознать кнопку?
Заранее спасибо!
Отправлен: 24.07.2005, 22:41
Вопрос задал: Константинов А.С. (статус: Посетитель)
Всего ответов отправлено: 2

Отвечает: Ddeedd
Здравствуйте, Константинов А.С.!

Стандартное преобразование типов для C:

((TButton*)Sender)->Tag=10;
Ответ отправил: Ddeedd (статус: 3-ий класс)
Отправлен: 24.07.2005, 22:48
Оценка за ответ: 5
Комментарий оценки:
Спасибо! Это всё, что мне было нужно!

Отвечает: Rusland
Здравствуйте, Константинов А.С.!
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TButton *btn = (TButton *)Sender;
btn->Tag; // получаем все свойства Button1, в том числе и Tag
btn=NULL;
}
---------
Тише едешь, дальше будешь... от того места куда едешь
Ответ отправил: Rusland (статус: 8-ой класс)
Отправлен: 25.07.2005, 09:56
Оценка за ответ: 5
Комментарий оценки:
Спасибо! Но немножко сложно. Лучше обыкновенное преобразование типов. А так уходят лишние байты и работает медленнее.


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.

Яндекс


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.cplus
Отписаться
Вспомнить пароль

В избранное