我想知道如何在我的 win32 应用程序中识别复制发生在哪个控件中。例如在 EditBox、RichEdit 等中。
为了弄清楚复制是发生在我的应用程序中还是在它之外,我使用了以下方法:
//global variables
HWND hWnd;
DWORD ProcId;
HWND nextHandle;
DWORD currentID;
//then I call two functions on form create
currentID=GetCurrentProcessId();
nextHandle = SetClipboardViewer(Handle);
//then on WM_DRAWCLIPBOARD message I call
hWnd = GetClipboardOwner();
GetWindowThreadProcessId(hWnd,&ProcId);
// functions and checking by IDs whether
// the copying took place in or outside my application
if(lpdwProcessId==currentID) {...}
它工作正常,但这不是如何在 whitch 控制(在我的应用程序中)中检测复制发生的解决方案。