1,221
社区成员
发帖
与我相关
我的任务
分享
ControlAtomString = Format("ControlOfs%.8x%.8x", ARRAYOFCONST(((WORD)GetModuleHandle(NULL),(WORD) GetCurrentThread())));
参数有问题,转换一下,不知道能不能用String ControlAtomString;
TAtom ControlAtom;
DWORD RM_GetObjectInstance;
// ---------------------------------------------------------------------------
TWinControl * FindControl(HWND Handle)
{
DWORD OwningProcess;
if (Handle != 0 && GetWindowThreadProcessId(Handle, &OwningProcess) != 0 && OwningProcess != GetCurrentProcessId())
{
if (GlobalFindAtom(ControlAtomString.c_str()) == ControlAtom)
return (TWinControl *) GetProp(Handle, MakeIntAtom(ControlAtom));
else
return (TWinControl *)SendMessage(Handle, RM_GetObjectInstance, 0, 0);
}
return NULL;
}
void init()
{
ControlAtomString = Format("ControlOfs%.8x%.8x", ARRAYOFCONST((GetModuleHandle(NULL), GetCurrentThread())));
ControlAtom = GlobalAddAtom(ControlAtomString.c_str());
RM_GetObjectInstance = RegisterWindowMessage(ControlAtomString.c_str());
}
void final()
{
GlobalDeleteAtom(ControlAtom);
ControlAtomString = "";
}