Eli miten saa Javan Swing-ikkunasta HWND:n C++-koodia (JNI) varten?
Ei voida olettaa, että vain yhdellä ikkunalla olisi sama otsikko, joten otsikon perusteella ei voi hakea HWND:tä.
Kolmen sekunnin googletuksella löysin sivun, jossa esitetään kaksi erilaista tapaa tehdä asia.
En tiedä, mutta aika pienellä vaivalla saa selville, että jotkut tietävät. Kopioinpa tuolta lupaavimman näköisen koodin:
import sun.awt.windows.WComponentPeer; public static long getHWnd(Frame f) { return f.getPeer() != null ? ((WComponentPeer) f.getPeer()).getHWnd() : 0; }
Metabolix kirjoitti:
En tiedä, mutta aika pienellä vaivalla saa selville, että jotkut tietävät. Kopioinpa tuolta lupaavimman näköisen koodin:
import sun.awt.windows.WComponentPeer; public static long getHWnd(Frame f) { return f.getPeer() != null ? ((WComponentPeer) f.getPeer()).getHWnd() : 0; }
Tämä toimii, mutta getPeer() näyttäisi olevan deprecated. Onko haittaa?
Kiitoksia.
Aihe on jo aika vanha, joten et voi enää vastata siihen.