在vs2005 win32 c++ 中: 我创建了一个html页面,如何得到一个网页中链接上显示的文字? 用哪个函数?
解决方案 »
- 如何校验路径是否存在?
- 编程语言选择问题
- 如何逐行读取文本编辑框中指定内容???(在线等)
- 请问如何在windows和linux下看当前的cpu和内存使用率?
- 各位老大帮忙给看看呗
- 关于CArchive类的问题
- 初学COM的怎么入手(有点VC的基础吧)
- 请教 如何 保存 Tree 的内容并 重新 调出来
- 请问高手,能不能在DLL导出两个函数名相同参数表不同的函数??也就是dll导出中能不能包含重载函数??
- 提供一些参考意见,关于处理数据库
- 有人可以给我讲讲对“CreatFile”建立的FILE操作么?
- VC6++开发DAO+Access97的程序在vista中怎么读不到数据,也写不进去,怎么解决,急急急
这么创建的,代码如下:
//HTML window
hwndHTML = CreateWindow(WC_HTML,
NULL,
WS_CHILD ¦ WS_BORDER ¦ WS_VISIBLE,
5,
35,
(rc.right - rc.left) - 10,
(rc.bottom - rc.top) - 33,
hwndParent,
NULL,
hInstance,
NULL);
IHTMLElement不需要ATL,只是一个COM接口而已
#define MAX_LOADSTRING 255
#define MENU_HEIGHT 26
#define WC_HTMLCONTAINER TEXT("HTMLContainer")
//
HWND hWnd;
HINSTANCE g_hInst;// current instance//
HWND g_hWndCB;//
CMyHtmlShow::CMyHtmlShow(void)
{
}CMyHtmlShow::~CMyHtmlShow(void)
{
}
//
LRESULT TestWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
//
HRESULT CMyHtmlShow::RegisterTestClass(HINSTANCE hInstance)
{
WNDCLASS wc = { 0 };
HRESULT hrResult;
if(!GetClassInfo(hInstance, WC_HTMLCONTAINER, &wc))
{
wc.style = CS_HREDRAW | CS_VREDRAW | CS_IME;//CS_IME
wc.lpfnWndProc = TestWndProc;
wc.hInstance = hInstance;
wc.lpszClassName = WC_HTMLCONTAINER;
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
hrResult = (RegisterClass(&wc) ? S_OK : E_FAIL);
}
else
{
hrResult = S_OK;
}
return hrResult;
}
//
int CMyHtmlShow::CreateMyHtmlWindow(CString strHtml)
{
HWND hwndParent;
HWND hwndHTML;
//
VERIFY(SUCCEEDED(RegisterTestClass(hInstance)));
//parent window
hwndParent = CreateWindow(WC_HTMLCONTAINER,
L"窗口标题",
WS_VISIBLE,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
0);
RECT rc;
GetWindowRect(hwndParent, &rc);
SHFullScreen(hwndParent, SHFS_SHOWTASKBAR | SHFS_SHOWSIPBUTTON | SHFS_SHOWSTARTICON);
//SHFullScreen(hwndParent, SHFS_SHOWSIPBUTTON | SHFS_SHOWSTARTICON);
//new position of parent window
MoveWindow( hwndParent,
rc.left,
rc.top - (MENU_HEIGHT + 5),
rc.right,
rc.bottom - MENU_HEIGHT + 5 + 10,
TRUE);
VERIFY(InitHTMLControl(hInstance));
//HTML window
hwndHTML = CreateWindow(WC_HTML,
NULL,
//WS_CHILD | WS_BORDER | WS_VISIBLE,
WS_BORDER | WS_VISIBLE,
5,
35,
(rc.right - rc.left) - 10,
(rc.bottom - rc.top) - 33,
hwndParent,
NULL,
hInstance,
NULL);
//
//SetActiveWindow(hwndParent);
//
if (hwndHTML != NULL)
{
BSTR bstrURL = SysAllocString(strHtml);
SendMessage(hwndHTML, DTM_NAVIGATE,0,(LPARAM)bstrURL);//0 turn to 1,DTM_INTEGRALPAGING DTM_NAVIGATE
SysFreeString(bstrURL);
MSG msg;
while (GetMessage(&msg,NULL,0,0)) //0,0
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
return 0;
}
/****************************************************************************
* *
* FUNCTION : HandleCreate ( hwnd ) *
* *
* PURPOSE : Creates a new (empty) menu and appends to it the "State" *
* menu items. It sets up the user-defined checks for the *
* menu. It then inserts this menu into the main menu bar. *
* *
****************************************************************************/
VOID APIENTRY HandleCreate(
HWND hwnd
)
{
#if _WIN32_WCE > 211 //Pocket PC devices
//Create a MenuBar for WCE devices
SHMENUBARINFO info;
info.cbSize = sizeof(info);
info.hwndParent = hwnd;
info.dwFlags = SHCMBF_HMENU;
info.nToolBarId = IDR_MENU_HTML;
info.hInstRes = ::AfxGetInstanceHandle();
info.nBmpId = 0;
info.cBmpImages = 0;
SHCreateMenuBar(&info);
if (FALSE == SHCreateMenuBar(&info))
{
MessageBox(hwnd, L"Create MenuBar Failed", L"Error", MB_OK);
}
g_hWndCB = info.hwndMB;
#else
g_hWndCB = CommandBar_Create(g_hInst, hwnd, 1);
CommandBar_InsertMenubar(g_hWndCB, g_hInst, IDM_MAIN_MENU, 0);
CommandBar_AddAdornments(g_hWndCB, 0, 0);
#endif
return;
}
//
HRESULT ProcessMainMenu(HWND hDlg, WORD wLo)
{
HRESULT hr = S_OK;
WCHAR pszSubject[MAX_LOADSTRING];
IItem * pItem = NULL;
long lOID = 0;
switch(wLo)
{
case ID_MYOK:
{
DestroyWindow(hDlg);
PostQuitMessage(0);
break;
}
}
return hr;
}
//
LRESULT TestWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
LRESULT lResult = 0;
switch (uMsg)
{
//MENU
case WM_CREATE:
{
// Create the menu
HandleCreate(hwnd);//
break;
}
case WM_COMMAND:
{
ProcessMainMenu(hwnd, LOWORD(wParam));
break;
}
case WM_CANCELMODE:
{
DestroyWindow(hwnd);
PostQuitMessage(0);
break;
}
/*case WM_TIMER:
{
DestroyWindow(hwnd);
PostQuitMessage(0);
break;
}*/
default:
{
lResult = DefWindowProc(hwnd, uMsg, wParam, lParam);
break;
}
}
return lResult;
}