16,467
社区成员
发帖
与我相关
我的任务
分享
//用下面的代码调用WebBrowse控件,创建对象的时候报错
CoInitialize(NULL);
HWND h = FindWindow("ConsoleWindowClass", NULL);
CWebBrowser2 test;
test.Create("test", WS_CHILD|WS_VISIBLE, CRect(0,0,100,100), CWnd::FromHandle(h), 123);
//test.Navigate("www.baidu.cn", NULL, NULL, NULL,NULL);
#include <windows.h>
#include <stdio.h>
HWND ghMainWnd = 0;
bool InitWindowsApp(HINSTANCE instanceHandle, int show);
int Run();
LRESULT CALLBACK CALLBACKWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
int main(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR pCmdLine, int nShowCmd)
{
if(!InitWindowsApp(hInstance, nShowCmd))
{
return 0;
}
return Run();
}
bool InitWindowsApp(HINSTANCE instanceHandle, int show)
{
WNDCLASS wc;
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = CALLBACKWndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = instanceHandle;
wc.hIcon = LoadIcon(0, IDI_APPLICATION);
wc.hCursor = LoadCursor(0, IDC_ARROW);
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wc.lpszMenuName = 0;
wc.lpszClassName = "BasicWndClass";
if(!RegisterClass(&wc))
{
MessageBox(0, "RegisterClass FAILED", 0, 0);
return false;
}
ghMainWnd = CreateWindow(
"BasicWndClass",
"Win32Basic",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
0,
0,
instanceHandle,
0);
if(ghMainWnd == 0)
{
MessageBox(0, "CreateWindow FAILED", 0, 0);
return false;
}
ShowWindow(ghMainWnd, show);
UpdateWindow(ghMainWnd);
return true;
}
int Run()
{
MSG msg = {0};
BOOL bRet = 1;
while((bRet = GetMessage(&msg, 0, 0, 0)) != 0 )
{
if(bRet == -1)
{
MessageBox(0, "GetMessage FAILED", "Error", MB_OK);
break;
}
else
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
return (int)msg.wParam;
}
LRESULT CALLBACK CALLBACKWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch( msg )
{
case WM_LBUTTONDOWN:
MessageBox(0, "Hello, World", "Hello", MB_OK);
return 0;
case WM_KEYDOWN:
if( wParam == VK_ESCAPE )
DestroyWindow(ghMainWnd);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hWnd, msg, wParam, lParam);
}
#include <windows.h>
HWND ghMainWnd = 0;
bool InitWindowsApp(HINSTANCE instanceHandle, int show);
int Run();
LRESULT CALLBACKWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
int WINAPIWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR pCmdLine, int nShowCmd)
{
if(!InitWindowsApp(hInstance, nShowCmd))
{
return 0;
}
return Run();
}
bool InitWindowsApp(HINSTANCE instanceHandle, int show)
{
WNDCLASS wc;
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = CALLBACKWndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = instanceHandle;
wc.hIcon = LoadIcon(0, IDI_APPLICATION);
wc.hCursor = LoadCursor(0, IDC_ARROW);
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wc.lpszMenuName = 0;
wc.lpszClassName = "BasicWndClass";
if(!RegisterClass(&wc))
{
MessageBox(0, "RegisterClass FAILED", 0, 0);
return false;
}
ghMainWnd = CreateWindow(
"BasicWndClass",
"Win32Basic",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
0,
0,
instanceHandle,
0);
if(ghMainWnd == 0)
{
MessageBox(0, "CreateWindow FAILED", 0, 0);
return false;
}
ShowWindow(ghMainWnd, show);
UpdateWindow(ghMainWnd);
return true;
}
int Run()
{
MSG msg = {0};
BOOL bRet = 1;
while( (bRet = GetMessage(&msg, 0, 0, 0)) != 0 )
{
if(bRet == -1)
{
MessageBox(0, "GetMessage FAILED", "Error", MB_OK);
break;
}
else
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
return (int)msg.wParam;
}
LRESULT CALLBACKWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch( msg )
{
case WM_LBUTTONDOWN:
MessageBox(0, "Hello, World", "Hello", MB_OK);
return 0;
case WM_KEYDOWN:
if( wParam == VK_ESCAPE )
DestroyWindow(ghMainWnd);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hWnd, msg, wParam, lParam);
}