Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: UIActonHandle
Konnekt | Forum > Developerzy > Tworzenie wtyczek
Mucha
Potrzebuje pobrac hwnd kontrolki odbioru (msg_ctrl_view czy jak to sie tam zwie).
CODE
function PobierzUchwyt(parent,id,cntID: Integer): HWND; // to samo co UIActionHandle
var
    nfo :sUIActionInfo;
begin
    nfo.s_size := SizeOf(nfo);
    nfo.mask := UIAIM_HANDLE;
    nfo.act.parent := parent;
    nfo.act.id := id;
    nfo.act.cnt := cntId;
    ICMessage( IMI_ACTION_GET , Integer(@nfo));
    result := nfo.handle;
end;
...
hwnd := PobierzUchwyt(IMIG_MSGWND,250,cntid);

Zawsze zwraca mi hwnd dla ostatnio utworzonego okna. Dodam ze cntid ktore przekazuje jest na pewno dobre, a hwnd tej kontrolki przypisuje w ten sposob:
CODE
ACTN_CREATEWINDOW:
begin
wnd := sUIActionNotify_CreateWindowPtr(anBase);
....
wnd^.hWnd := Mozilla.Handle;
....
end;
Zanim usunalem "starego" richedita dzialalo, teraz nie. Co tu jest zle?
dulek000
To w obsłudze kontrolki:
CODE
case ACTN_SETCNT: {
  sUIActionNotify_2params* an = (sUIActionNotify_2params*)this->getAN();
  an->notify2 = (int)GetDlgItem((HWND)UIActionHandleDirect(sUIAction(0, an->act.parent, an->act.cnt)), UI::ACT::msg_ctrlview);
  break;
}

I pobierasz uchwyt za pomocą UIActionHandleDirect. Mi pomogło. Możesz też fowardować ACTN_SETCNT do prawowitego właściciela kontrolki.

P.S. Delphi nie znam. tongue.gif
Mucha
Odpowiedz w C++ jak najbardziej mnie satysfakcjonuje. Pierwsza metoda dziala, dzieki wielkie.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2012 Invision Power Services, Inc.