Dodawanie elementów do istniejącego okna

0

Witam,

Używam pewnej aplikacji, która udostępnia język skryptowy i możliwość załadowania biblioteki dll. Chciałem przy jego pomocy dodać własne elementy do istniejącego okna aplikacji. W tym celu napisałem sobie bibliotekę dll z następującą funkcją:

create_object(HWND hWnd)
{
	CreateWindowEx(
		0,L"BUTTON",L"Click me",BS_PUSHBUTTON | WS_VISIBLE | WS_CHILD,
		50,50,100,25,hWnd,(HMENU)99999,(HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE) ,NULL
	);

}

Biblioteka jest ładowana w trakcie działania aplikacji, poprzez wywołanie w skrypcie. Powyższa funkcja dodaję do okna aplikacji przycisk, jednak po chwili (repaincie?) znika. Co zrobić, żeby ten przycisk (bądź inny element) nie znikał? Niestety Windows nie jest moim głównym środowiskiem pracy i jestem trochę na bakier z Winapi.

Dodam, że nie mam dostępu do kodu źródłowego aplikacji i jedyną przydatną informacją, jaką mogę uzyskać bezpośrednio z skryptów jest uchwyt okna.

0

Spróbuj tak:
CreateWindowEx(
0,L"BUTTON",L"Click me",BS_PUSHBUTTON | WS_VISIBLE | WS_CHILD,
50,50,100,25,hWnd,0,0,0
);

0

W jaki sposób twój kod jest wykonywany w procesie tej aplikacji z oknem "targetem"...

Bo wywołując CreateWindowEx, podczas tworzenia okna wątek w którym CreateWindowEx zostaje wywołane wiązany jest z oknem i system właśnie do tego wątku będzie pompował komunikaty tego okna (patrz GetWindowThreadProcessId), tak przynajmniej jest w przypadku okien głównych, ale nie wiem jak to jest aplikowane dla okien potomych, jeśli okno rodzica jest stworzone w innym wątku.

1 użytkowników online, w tym zalogowanych: 0, gości: 1