我有自己制作的 NSIS 插件 DLL。该 dll 有一个函数,它将 hwnd id 编号作为参数,然后创建一个编辑框窗口,该 hwnd 作为编辑框的父 hwnd。
我的问题:我无法将 HWND 传递给我的 NSIS 插件 DLL。我可以检索 hwnd id,然后识别实际的 hwnd(我认为)但是当我创建我的编辑框时它从未显示在 hwnd 上?
我究竟做错了什么。如何正确找到作为参数传递的 hwnd?
extern "C" void __declspec(dllexport) __cdecl CreateEditbox(HWND hwndParent, int string_size, TCHAR *variables, stack_t **stacktop, extra_parameters *extra)
{
g_hwndParent=hwndParent;
EXDLL_INIT();
{
int hwndID = popint();
HWND hwnd = GetDlgItem(hwndParent, hwndID);
HWND a = CreateWindowEx(WS_EX_TRANSPARENT, TEXT("Edit"), text, WS_VISIBLE|WS_CHILD, 20, 20, 100, 20,
hwnd, NULL, GetModuleHandle(NULL), NULL);
}
}
我的 NSIS 代码:
Page custom Start
Function Start
nsDialogs::Create 1018
Pop $0
tbox::CreateEditbox $0
nsDialogs::Show
FunctionEnd