Dodawanie elementów do istniejącego okna

Odpowiedz Nowy wątek
2012-12-28 17:37

Rejestracja: 7 lat temu

Ostatnio: 7 lat temu

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.

Pozostało 580 znaków

2012-12-28 22:49

Rejestracja: 14 lat temu

Ostatnio: 2 dni temu

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
);


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
edytowany 1x, ostatnio: _13th_Dragon, 2012-12-28 22:49

Pozostało 580 znaków

nobody__
2012-12-29 14:01
nobody__
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.

Pozostało 580 znaków

Odpowiedz

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