我想用swing嵌入浏览器,在网上看到的资料都是一样的结果,如下好像是jdk1.3调用时可以,但在jdk1.5版本中 DrawingSurfaceInfo,DrawingSurface,Win32DrawingSurface,这三个类没有定义,不能执行,请哪位高手指点一二; public int getHWND() {
int hwnd = 0;
DrawingSurfaceInfo drawingSurfaceInfo = ((DrawingSurface) (getPeer())).getDrawingSurfaceInfo();
if (null != drawingSurfaceInfo) {
drawingSurfaceInfo.lock();
Win32DrawingSurface win32DrawingSurface = (Win32DrawingSurface) drawingSurfaceInfo.getSurface();
hwnd = win32DrawingSurface.getHWnd();
drawingSurfaceInfo.unlock();
}
return hwnd;
}
int hwnd = 0;
DrawingSurfaceInfo drawingSurfaceInfo = ((DrawingSurface) (getPeer())).getDrawingSurfaceInfo();
if (null != drawingSurfaceInfo) {
drawingSurfaceInfo.lock();
Win32DrawingSurface win32DrawingSurface = (Win32DrawingSurface) drawingSurfaceInfo.getSurface();
hwnd = win32DrawingSurface.getHWnd();
drawingSurfaceInfo.unlock();
}
return hwnd;
}
VOID CreateIEControl(ThreadParam *pThreadParam)
{
AtlAxWinInit();
printf("Create AtlAxWin Begin...[0x%x][%s]\n",pThreadParam->hwnd,pThreadParam->szURL);
// In the 2nd Param you can use ProgID or UUID of any activex control.
HWND hwndChild = ::CreateWindow("AtlAxWin",
"Shell.Explorer.1",
WS_CHILD|WS_VISIBLE,
0,0,0,0,
pThreadParam->hwnd,NULL,
::GetModuleHandle(NULL),
NULL); IUnknown *pUnk = NULL;
AtlAxGetControl(hwndChild,&pUnk);
printf("Create AtlAxWin Done...[0x%x]\n",pUnk); // get an interface to set the URL.
CComPtr spBrowser;
pUnk->QueryInterface(IID_IWebBrowser2, (void**)&spBrowser);
if (spBrowser)
{
CComVariant ve;
CComVariant vurl(pThreadParam->szURL);
#pragma warning(disable: 4310) // cast truncates constant value
spBrowser->put_Visible(VARIANT_TRUE);
#pragma warning(default: 4310) // cast truncates constant value
spBrowser->Navigate2(&vurl, &ve, &ve, &ve, &ve);
}
}
你这段东西用了?
我列出代码的意思是问在jdk1.5下如何获取句柄的