我有自己的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
答案 0 :(得分:0)
nsDialogs :: Create返回inner dialog的HWND(而不是ID)。
nsDialogs已经可以创建编辑框,因此您当前的代码毫无意义......