复制内容到剪贴板
代码:
function TFindDialog.Execute(ParentWnd: HWND): Boolean;
var
Option: TFindOption;
begin
if FFindHandle <> 0 then
begin
BringWindowToTop(FFindHandle);
Result := True;
end else
begin
FFindReplace.Flags := FR_ENABLEHOOK;
FFindReplace.lpfnHook := FindReplaceDialogHook;
FRedirector := TRedirectorWindow.Create(nil);
with TRedirectorWindow(FRedirector) do
begin
FCommonDialog := Self;
EnumThreadWindows(GetCurrentThreadID, @GetTopWindow, LPARAM(@FFormHandle));
end;
FFindReplace.hWndOwner := FRedirector.Handle;
for Option := Low(Option) to High(Option) do
if Option in FOptions then
FFindReplace.Flags := FFindReplace.Flags or FindOptions[Option];
if Template <> nil then
begin
FFindReplace.Flags := FFindReplace.Flags or FR_ENABLETEMPLATE;
FFindReplace.lpTemplateName := Template;
end;
CreationControl := Self;
FFindHandle := FFindReplaceFunc(FFindReplace);
Result := FFindHandle <> 0;
end;
end;以上是关键代码,穿透接口有尝提供。