私は自分で作成したNSISプラグインDLLを持っています。dllには、hwnd id番号をパラメーターとして受け取り、そのhwndをeditboxesの親hwndとして使用して編集ボックスウィンドウを作成する関数が1つあります。
私の問題: 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