屏幕取色后怎么恢复原状态WMEraseBkng(var MSg:TWMEraseBkgnd)
procedure TForm1.WMEraseBkng(var MSg:TWMEraseBkgnd);
begin
Msg.Result:=1;
end;
上面这个函数是为了在屏幕上取色用的,它可以把整个屏幕载入窗口,这时,屏幕就像被锁定一样。移动窗口时,也会在屏幕上留下痕迹。
请问,不需要取色的时候,怎样让这个过程失效,或者说禁用它,让屏幕恢复正常,需要取色时再用。
[解决办法]
做个标记,比如真假,取色为真,取色完毕为假
if true then
Msg.Result:=1;
[解决办法]
WMEraseBkng是当屏幕需要擦除背景时发出的消息。你如果仅仅是需要取色,把屏幕截图,载入你所说的form中,然后对这个form内的坐标点取色。根本不需要在WMEraseBkng消息上做文章。
[解决办法]
如此来说,用hook吧
[解决办法]
根本不用窗体,用 Tbitmap 在内存里面不能取吗?