Форум: "WinAPI";
Текущий архив: 2005.10.16;
Скачать: [xml.tar.bz2];
ВнизКто нить работал с GetBKcolor? ничего не получается!!!!!!!!!!!!!! Найти похожие ветки
← →
SuperMatser © (2005-08-16 21:29) [0]Привет!
Никак не могу разобраться как работать с GetBKcolor
Делаю так:
WNH_w:=FindWindow(nil, "Крутая прога");
WinDC:=GetWindowDC(WNH_w);
GetCOl:=GetBkColor(WinDC);
DeleteObject(WinDC);
//===Далее
Rtg:=GetWindowDC(ElementEdit[9].WNH); //==Тут хендл заранее полученного едита
GFont.lfFaceName:="MS Sans Serif";
GFont.lfHeight:=15;
//===For win9x
//SetBkColor(Rtg, RGB(192,192,192)); <<---Вот так работает
//===For winXP
SetBkColor(Rtg, RGB(GetRValue(GetCOl), GetGValue(GetCOl), GetBValue(GetCOl))); <<--Не работает, рисует белым фоном, т.е. не тем что там
HHfont:=CreateFontIndirect(GFont);
SelOBJ:=SelectObject(Rtg, HHfont);
Tfg:=ElementEdit[9].TextWND;
//viewmessage(ElementEdit[8].Size1);
Tfg:=GetObrez(length(Tfg), 1);
PosDt:=1; //ElementEdit[8].Size1;
ExtTextOut(Rtg, PosDt, 1, eto_Clipped, nil, Pchar(Tfg), length(Tfg), 0);
DeleteObject(SelOBJ);
DeleteObject(Rtg);
Кто нибудь сталкивался с этим?
← →
SuperMatser © (2005-08-16 21:43) [1]WinDC:=GetWindowDC(WNH_w);
GetCOl:=GetBkColor(WinDC); <<<<<---Все время возвращает белый цвет, хотя окно серое, в чем трабл?
DeleteObject(WinDC);
← →
alpet © (2005-08-16 22:37) [2]Точно белый? Тогда окно и соответственно DC у тебя неверные, сначала разберись на окне своего процесса (например форме).
Return Values
If the function succeeds, the return value is a COLORREF value for the current background color.
If the function fails, the return value is CLR_INVALID.
← →
alpet © (2005-08-16 22:40) [3]Потом ты получаешь только цвет который используется для фона выводимого с помощью DC текста, а не тот что используется для закраски она по стиранию фона (WM_ERASEBKGND). Последнее лучше определить через кисть класса (GetClassInfoEx, WNDCLASSEXA.hbrBackground) окна, и то невсегда это может быть верным.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2005.10.16;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.035 c