Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Uchwyt do okien
Konnekt | Forum > Developerzy > Tworzenie wtyczek
KoSiarzPL
Jak uzyskać uchwyt do toolbara głównego oraz toolbara sieci?:
CODE
void* uchwyt1 = (void*)IMessage( IMI_GROUP_GETHANDLE, 0, 0, (int)&sUIAction( IMIG_MAINWND, IMIG_BAR ) );
void* uchwyt2 = (void*)IMessage( IMI_GROUP_GETHANDLE, 0, 0, (int)&sUIAction( IMIG_BAR, IMIG_STATUS ) );

, oba zwracają mi zero.
Mucha
Sprobuj tak:
IMI_ACTION_GET, p1 = sUIActionInfo *, ustawiasz parent, id i maske (jak dasz maske 0 to pobierze wszystko)
w sUIActionInfo jest uchwyt (chociaz nie pamietam czy to dzialalo czy nie)
dulek000
A gdzie to robisz? W IStart te toolbary jeszcze nie istnieją.
ursus6
Jak narazie najlepszym rozwiązaniem było utworzenię wątku i czekanie na toolbara.
Olórin
eee? A nie pomoże UIActionHandle? też coś takiego jest.
dulek000
W IStart nie pomoże - te toolbary są tworzone po nim. Zrób sobie MessageBox(0, 0, 0, 0) w IStart i przyjrzyj się okienku przez Spy++.
Olórin
Na pewno da się pobrać przez GetDlgItem wink.gif
KoSiarzPL
Ok toolbary juz mam jeszcze mi zostało pobrać uchwyt do listy kontaktów. Jakie id jest tej akcji? I jakiego typu jest to kontrolka?
ursus6
Uchwyt: GetDlgItem(hWndK, 1000);
Kontrolka to ListView.
KoSiarzPL
Dzięki ursus. Jednak mój błąd i chodziło mi o uchwyt do kontrolki trzymającej listę kontaktów. Czyli chodzi mi o cały panel zakładek. Więc jaki jest identyfikator tego panelu i jaki to jest typ okna.

[eidt]
Przy okazji. Jest jakiś komunikat, który by informował, że UI zostało załadowane? Jeśli nie to może jakiś prosty sposób na wychwycenie że dany element już został załadowany bez tworzenia wątku i kręcenia się w nim w kółko?
dulek000
Jest to SysTabControl32 o id 1001.
Olórin
IStart
KoSiarzPL
Niestety nie, w IStart dalej główna belka pod listą kontaktów nie istnieje.
ursus6
Spróbuj oczytać uchwyt w IM_ALLPLUGINSINITIALIZED, albo zobacz subclassowanie akcji IMIG_STATUS.
Olórin
subclassuj więc akcje - wtedy na pewno będzie już utworzony wink.gif
KoSiarzPL
IM_ALLPLUGINSINITIALIZED już próbowałem wcześniej ale też nie działą. Ogólnie nie ma takiego komunikatu w K, który mów "UI zostało zainicjalizowane". Subklasować akcję okna głównego lub barów to trochę brutalne podejście tongue.gif Rozwiązałem to w inny sposób.

Jest to kolejna cegiełka do nowego API 0.7, która by się przydała.
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.