![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос по чистому WINapi [D7, NT4, Win2k, WinXP]
Xion © (2007-07-19 11:29:00)Доброе время суток.
у меня вопрос как отресовать caption на окне если я заменил WNDProc ?
DVM (2007-07-19 17:02:00) [21]Чет я не понял окно твое или чужое и зачем DefWindowProc вызывать всегда?
Xion (2007-07-19 16:59:00) [22]procedure TThreadWindow.WNDProc(var Message: TMessage);
var OldBrush:HBrush;
OldPen:HPen;
OldFont:HFont;
OldBk:Integer;
NeedDC:boolean;
begin
case Message.Msg of
WM_ERASEBKGND:
With TWMERASEBKGND(Message) do begin
NeedDC := DC = 0;
if NeedDC then
DC := GetWindowDC(fWND);
try
if fBrush <> 0 then
OldBrush := SelectObject(DC,fBrush)
else
OldBrush := SelectObject(DC,GetStockObject(NULL_BRUSH));
OldPen := SelectObject(DC,GetStockObject(BLACK_PEN));
OldFont := SelectObject(DC,fFont);
OldBk := GetBkMode(DC);
try
SetBkMode(DC,TRANSPARENT);
DrawWND(DC);
finally
SetBkMode(DC,OldBk);
SelectObject(DC,OldFont);
SelectObject(DC,OldPen);
SelectObject(DC,OldBrush);
end;
finally
if NeedDC then ReleaseDC(fWND,DC);
end;
exit;
end;
end;
//CallWindowProc(pointer(fAdrPrevWNDProc),fWND,Message.Msg,Message.WParam,Message. LParam);
DefWindowProc(fWND, Message.Msg, Message.WParam, Message.LParam);
//Windows.SetWindowLong(fWnd,GWL_WNDPROC,Integer(fAdrPrevWNDProc));
end;
clickmaker (2007-07-19 16:58:00) [23]
> [9] Xion © (19.07.07 16:54)
Дык это... DefWindowProc надо в конце вызывать. Или старую процедуру
DVM (2007-07-19 16:57:00) [24]
> Xion © (19.07.07 16:54) [9]
Покажи свой WNDProc
Xion (2007-07-19 16:54:00) [25]дело втом что я заменил WNDProc (спомощу SetWindowLong) етого окна на свой после етого он перестал отрисововать Caption
DVM (2007-07-19 16:48:00) [26]Но может случиться и так, что шапка окна самопальная - картинка за которую можно таскать - тогда найти способ замены текста маловероятно.
DVM (2007-07-19 16:46:00) [27]
> вобще какая метод отвечаеть за отресовку шапки окна
WM_NCPAINT + надо смотреть сообщения, начинающиеся на WM_NC....
DVM (2007-07-19 16:45:00) [28]
> ето я пробывал но на панели задач оно меняется а на шапке
> окна нет.
А ты точно у того окна у кого надо менял? На панели задач может быть кнопка совсем от другого окна.
Xion (2007-07-19 16:39:00) [29]ето я пробывал но на панели задач оно меняется а на шапке окна нет. вобще какая метод отвечаеть за отресовку шапки окна (без VCL)
clickmaker (2007-07-19 16:35:00) [30]TextOut, DrawText
Strange man (2007-07-19 16:32:00) [31]SetWindowText?
Xion (2007-07-19 16:19:00) [32]надпись на заголовке окна
DVM (2007-07-19 15:45:00) [33]Что понимается под caption - весь заголовок окна или надпись на заголовке окна?