// HtmlViewDlg.cpp : 实现文件
//#include "stdafx.h"
#include "HtmlView.h"
#include "HtmlViewDlg.h"
#include <commctrl.h>
#include <Htmlctrl.h>
#include <gx.h>
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CHtmlViewDlg 对话框CHtmlViewDlg::CHtmlViewDlg(CWnd* pParent /*=NULL*/)
: CDialog(CHtmlViewDlg::IDD, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}void CHtmlViewDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}BEGIN_MESSAGE_MAP(CHtmlViewDlg, CDialog)
#if defined(_DEVICE_RESOLUTION_AWARE) && !defined(WIN32_PLATFORM_WFSP)
ON_WM_SIZE()
#endif
ON_COMMAND(ID_BUTTON_LAST, OnMoveLast)
ON_COMMAND(ID_BUTTON_NEXT, OnMoveNext)
ON_COMMAND(ID_BUTTON_HOME, OnMoveHome)
END_MESSAGE_MAP()
// CHtmlViewDlg 消息处理程序
BOOL CHtmlViewDlg::OnInitDialog()
{
CDialog::OnInitDialog(); // 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
//  执行此操作
SetIcon(m_hIcon, TRUE); // 设置大图标
SetIcon(m_hIcon, FALSE); // 设置小图标 // TODO: 在此添加额外的初始化代码
GXOpenDisplay(m_hWnd, 0);
m_hWndHtml = NULL;
//ln 0827
hInst=theApp.m_hInstance; //注册一个消息
MyRegisterClass(hInst, L"HAHA");
if (TRUE == InitHTMLControl(hInst))
{
// create the window for the control
CRect rect;
GetClientRect(&rect);
// ScreenToClient(&rect); m_hWndHtml = CreateWindow(TEXT("DISPLAYCLASS"), NULL, WS_VISIBLE|WS_CHILD|WS_BORDER,
rect.left, rect.top, rect.right, rect.bottom-20, m_hWnd, NULL, hInst, NULL);
::SetWindowLong(m_hWndHtml, GWL_EXSTYLE, WS_EX_TOPMOST);
::ShowWindow(m_hWndHtml, SW_SHOW);
::UpdateWindow(m_hWndHtml);
}
//
//根据这个给出的路径打开html文件
CString strFileURL=L"file://\\Storage Card\\math.html";
OpenHtmlFile(strFileURL);
    
//#define IDS_START_PAGE TEXT("file://\\Storage Card\\math.html")
//
// // load the start page into the browser window
// CString startPage;
// //startPage.Format(L"file://%s/index.html", GetCurrentFilePath());
// ::SendMessage(m_hWndHtml, DTM_NAVIGATE, 0, (LPARAM)(LPTSTR)IDS_START_PAGE);
// //::SendMessage(m_hWndHtml, DTM_NAVIGATE, 0, (LPARAM)(LPTSTR)startPage.GetBuffer());
// startPage.ReleaseBuffer();
//// //设置工具栏 
if (!m_wndCommandBar.Create(this) ||!m_wndCommandBar.LoadToolBar(IDR_MAINFRAME))
{ TRACE0("Failed to create toolbar\n"); return -1;  }
m_wndCommandBar.SetBarStyle(m_wndCommandBar.GetBarStyle()|CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_FIXED); return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
}CString CHtmlViewDlg::GetCurrentFilePath()
{
TCHAR filepath[MAX_PATH];
ZeroMemory(filepath,sizeof(filepath));
GetModuleFileName(GetModuleHandle (NULL), filepath, MAX_PATH); 
int i=0 ;
for (i = wcslen(filepath); i && filepath[i] != L'\\'; i--) 

filepath[i + 1] = L'\0'; 
CString retStr(filepath);
return retStr;
}#if defined(_DEVICE_RESOLUTION_AWARE) && !defined(WIN32_PLATFORM_WFSP)
void CHtmlViewDlg::OnSize(UINT /*nType*/, int /*cx*/, int /*cy*/)
{
DRA::RelayoutDialog(
AfxGetInstanceHandle(), 
this->m_hWnd, 
DRA::GetDisplayMode() != DRA::Portrait ? 
MAKEINTRESOURCE(IDD_HTMLVIEW_DIALOG_WIDE) : 
MAKEINTRESOURCE(IDD_HTMLVIEW_DIALOG));
}
#endifATOM CHtmlViewDlg::MyRegisterClass( HINSTANCE hInstance,  LPTSTR szWindowClass ){
WNDCLASS wc; wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = (WNDPROC) WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
//wc.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_BROWSE));
wc.hCursor = 0;
wc.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH);
wc.lpszMenuName = 0;
wc.lpszClassName = szWindowClass; return RegisterClass(&wc);}void CHtmlViewDlg::OnMoveLast()
{}
void CHtmlViewDlg::OnMoveNext()
{}
void CHtmlViewDlg::OnMoveHome()
{}void CHtmlViewDlg::OpenHtmlFile(CString strURL)
{
    ::SendMessage(m_hWndHtml, DTM_NAVIGATE, 0, (LPARAM)(LPTSTR)strURL.GetBuffer());
}//回调函数
LRESULT CALLBACK CHtmlViewDlg::WndProc( HWND hWnd,  UINT Msg, WPARAM wParam,  LPARAM lParam)

{ WCHAR wszURL[1000];
HWND hWndHtml; switch (Msg) 
{
case WM_NOTIFY:
{
NM_HTMLVIEW* pnmHTMLView = (NM_HTMLVIEW*)lParam; switch (pnmHTMLView->hdr.code)
{

case NM_HOTSPOT:

mbstowcs(wszURL, (const char *)pnmHTMLView->szTarget, 1000); break;
} return FALSE;
}
//default:
// return DefWindowProc(hWnd, Msg, wParam, lParam);
}
return 0;}
这是我的一个对话框的类,这个类用于打开一个html文件,我想捕捉到点击网页中超链接这个消息,所以查阅资料创建了这个WindowProc()消息,但是我运行起来点击窗口中链接的时候并没有运行到WndProc()这个我设置的回调函数中去。我想应该是我的这个消息设置不正确,所以想请高手指点!多谢多谢拉!红色部分是我设置这个消息的关键部分,高手可以看看是不是这里有问题。