16,465
社区成员
发帖
与我相关
我的任务
分享
HWND hChildDlg = NULL;
LRESULT CALLBACK ChildDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
return FALSE;
}
#include <atlbase.h>
CComModule _Module;
#include <atlwin.h>
#include <comdef.h>
#include <exdisp.h>
#pragma comment(lib,"atl")
#pragma comment(lib,"User32.lib")
CAxWindow WinContainer;
// Mesage handler for about box.
LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_INITDIALOG:
{
CoInitialize(NULL);
//创建对话框
hChildDlg = CreateDialog(hInst, MAKEINTRESOURCE(IDD_DIALOG1), hDlg, (DLGPROC)ChildDlgProc);
IWebBrowser2* iWebBrowser;
VARIANT varMyURL;
//注册类
{
WNDCLASSEX wcex;
wcex.cbSize = sizeof(WNDCLASSEX);
wcex.style = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc = (WNDPROC)WndProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInst;
wcex.hIcon = LoadIcon(hInst, (LPCTSTR)IDI_WIN32T4);
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wcex.lpszMenuName = (LPCSTR)IDC_WIN32T4;
wcex.lpszClassName = WinContainer.GetWndClassName();
wcex.hIconSm = LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL);
RegisterClassEx(&wcex);
}
RECT rc={0,0,100,100};
WinContainer.Create(hDlg, rc, 0,WS_CHILD |WS_VISIBLE);
DWORD dwErr = GetLastError();
WinContainer.CreateControl(L"shell.Explorer.2");
WinContainer.QueryControl(__uuidof(IWebBrowser2),(void**)&iWebBrowser);
VariantInit(&varMyURL);
varMyURL.vt = VT_BSTR;
varMyURL.bstrVal = SysAllocString(L"http://www.baidu.com");
iWebBrowser-> Navigate2(&varMyURL,0,0,0,0);
VariantClear(&varMyURL);
iWebBrowser-> Release();
PostMessage(hDlg, WM_SIZE, 0, 0);
return TRUE;
}
case WM_COMMAND:
{
if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
{
EndDialog(hDlg, LOWORD(wParam));
return TRUE;
}
break;
}
case( WM_DESTROY ):
{
if(hChildDlg != NULL)
{
DestroyWindow(hChildDlg);
hChildDlg = NULL;
}
WinContainer.DestroyWindow();
CoUninitialize();
return 0;
}
case( WM_SIZE ):
{
RECT rc;
GetClientRect(hDlg, &rc);
//移动对话框到左上角
RECT rcDlg;
GetWindowRect(hChildDlg, &rcDlg);
MoveWindow(hChildDlg, 0, 0, rcDlg.right-rcDlg.left, rcDlg.bottom-rcDlg.top, TRUE);
//webbrowser移动到对话框右侧边
rc.left += rcDlg.right - rcDlg.left;
WinContainer.MoveWindow(&rc);
return 0;
}
default:
{
break;
}
}
return FALSE;
}