![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не создаются цвета(WinApi)
Max © (2014-12-04 20:26:00)Здравствуйте.
var
LBrush, : HBRUSH;
LPen : HPEN;
WM_SHOWWINDOW:
begin
GetClientRect(Form3, rrLevel);
DC := GetDC(Form3);
dcL := CreateCompatibleDC(DC);
BufBit := CreateCompatibleBitmap (DC, rr.Right, rr.Bottom);
LBrush := CreateSolidBrush(15780518);
LPen := CreatePen(0,1,15780518);
SetTimer(Form3, TmrL, 20, @TimeM);
end;
WM_CLOSE, WM_DESTROY:
begin// MessageBox(ChervForm,'d','f',0);
ShowWindow(Form3, SW_HIDE);
KillTimer(Form3, TmrL);
......
SendMessage(CbL, BM_SETCHECK, 0, 0);
end
procedure TimeM; stdcall;
begin
SelectObject(dcL, BufBit);
FillRect(dcLevel, rrLevel, LBrush);
BitBlt(DC, 0, 0, rrLevel.Right, rrLevel.Bottom, dcL, 0, 0, srccopy);
end;
Окно вызывается через чекбокс.
Кликаю первый раз - вместо нужного мне цвета, получается серый или белый, да еще и в клеточку или точечку.
закрываю окно(SW_CLOSE) и снова вызываю(WM_SHOW), все ок, цвет нужный мне появился.
C остальными окнами, где рисуестя, такого не происходит.
Почему так????????
Max (2014-12-07 13:48:00) [1]Забыл отписаться. Не правильно указал HDC при WM_SIZE, поправил.Все работает.
Игорь Шевченко (2014-12-05 10:18:00) [2]Учиться нужно по правильным примерам, например:
http://msdn.microsoft.com/ru-RU/library/windows/desktop/dd162482(v=vs.85).aspx
Max (2014-12-04 21:21:00) [3]
> а вообще код страшен
Я только учусь)))
Rouse_ (2014-12-04 20:51:00) [4]Начни с чтения справки по функции SelectObject, чтоб понять где у тебя теряются GDI объекты.
ЗЫ: а вообще код страшен...