09.09.2011, 14:33
|
#12
|
|
///
Сообщений: 9,552
Регистрация: 02.04.2005
Возраст: 45
Не в сети
|
Вот что выясняется в ходе экспертиментов:
1. Без Inavalidate не работает. То есть даже TImage нужна принудительная перерисовка.
2. Если на OnMouseMove поставить загрузку картинки в TImage - invalidate не нужен.
Получилось реально работающее вот что:
Цитата:
void __fastcall TForm1::ImageMouseMove(TObject *Sender, TShiftState Shift, int X,
int Y)
{
int i,j;
Form1->Image->Picture->LoadFromFile("tire2.bmp");
_m_pGraphics = new Gdiplus::Graphics(Form1->Image->Canvas->Handle);
// _m_pGraphics_Layer1 = new Gdiplus::Graphics(Form1->Image->Canvas->Handle);
//_m_ppen = new Pen(Gdiplus::Color(255,255,180,180));
// _m_pbrush= new SolidBrush(Gdiplus::Color(55, 255, 0, 0));
_m_pGraphics->SetSmoothingMode(Gdiplus::SmoothingModeNone);
_m_ppen->SetLineCap(2, 2, 0);
_m_ppen->SetColor(Gdiplus::Color(255, 190, 190, 190));
_m_ppen->SetWidth(1);
//рисуем сетку
for (i=0; i <= 60; i++) _m_pGraphics->DrawLine(_m_ppen, 0,i*10,700,i*10);
for (j=0; j <= 70; j++) _m_pGraphics->DrawLine(_m_ppen, j*10,0,j*10,600);
//меняем карандаш для рисования движущейся линии
_m_pGraphics->SetSmoothingMode(Gdiplus::SmoothingModeHighQualit y);
_m_ppen->SetColor(Gdiplus::Color(255, 255, 90, 90));
_m_ppen->SetWidth(5);
_m_pGraphics->DrawLine(_m_ppen, 0,600-50,X,Y); // ее родимую и двигаю
}
|
|
|
|