VC++ 程 序 中 用 对 话 框 的 形 式 显 示HTML 文 件 (转)

VC++ 程 序 中 用 对 话 框 的 形 式 显 示HTML 文 件 (转)[@more@]

VC++ 程 序 中 用 对 话 框 的 形 式 显 示HTML 文 件

zhou daibing ---- 在 安 装 了 ie 4 后, 可 以 在 程 序 中 用 对 话 框 的 形 式 显 示HTML 文 件, 如 弹 出 用HTML 写 的 帮 助 文 件 等 等, 如 同 直 接 用 浏 览 器, 但 又 与 浏 览 器 风 格 不 同。

---- 其 实 现 如 下:

//在头文件或.cpp文件的开头包含文件urlmon.h,定义函数 / #include "urlmon.h" typedef HRESULT STDapiCALLTYPE SHOWHTMLDIALOGFN (HWND hwndParent, IMoniker *pmk, VARIANT *pvarArgIn, TCHAR* pchOptions, VARIANT *pvArgOut); // //函数显示对话框,成功返回TRUE,失败返回FALSE BOOL ShowHtml() { HINSTANCE hinstMSHTML = LoadLibrary (TEXT("MSHTML.DLL")); //装载动态连接库 WCHAR url[]=L"HTTP://www.ccw.com.cn"; //此地址名称可直接用html文件名代替 if(hinstMSHTML)//装载动态连接库成功 { SHOWHTMLDIALOGFN *pfnShowHTMLDialog; pfnShowHTMLDialog = (SHOWHTMLDIALOGFN*) GetProcAddress(hinstMSHTML, TEXT ("ShowHTMLDialog")); if(pfnShowHTMLDialog) { IMoniker *moniker=NULL; // if( FAILED(CreateURLMoniker(NULL, (LPWSTR)url,&moniker ) )) { FreeLibrary(hinstMSHTML); return FALSE; } //调用ShowHTMLDialog函数显示URL上的HTML文件 pfnShowHTMLDialog(m_hWnd,moniker,NULL,NULL,NULL); if(moniker!=NULL) moniker->Release(); //显示成功,返回TRUE return TRUE; } else //GetProcessAddress失败 return FALSE; FreeLibrary(hinstMSHTML); } else //装载动态连接库失败 return FALSE; }

 
 

 

中国计算机世界出版服务公司版权所有


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10790690/viewspace-953157/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10790690/viewspace-953157/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VC++2008 ,要在 ListCtrl 的非第一列复选框,可以按照以下步骤进行操作: 1. 在资源编辑器,将 ListCtrl 控件添加到对框或窗口。 2. 在代码,使用 CListCtrl 类的 SubclassDlgItem 函数将 ListCtrl 控件与对应的控件变量关联起来。 例如,假设你的 ListCtrl 控件的 ID 是 IDC_LIST_CTRL,你可以在对框类的头声明一个成员变量: ```cpp CListCtrl m_listCtrl; ``` 然后,在 OnInitDialog 函数,使用 SubclassDlgItem 函数将变量与控件关联起来: ```cpp BOOL YourDialog::OnInitDialog() { CDialog::OnInitDialog(); // 将控件和变量关联起来 m_listCtrl.SubclassDlgItem(IDC_LIST_CTRL, this); // 设置 ListCtrl 的风格,使其支持复选框 DWORD dwStyle = m_listCtrl.GetExtendedStyle(); m_listCtrl.SetExtendedStyle(dwStyle | LVS_EX_CHECKBOXES); // 添加列头 m_listCtrl.InsertColumn(0, _T("Column 1"), LVCFMT_LEFT, 100); m_listCtrl.InsertColumn(1, _T("Column 2"), LVCFMT_LEFT, 100); // ... // 添加行和设置复选框状态 int nItem = m_listCtrl.InsertItem(0, _T("Item 1")); m_listCtrl.SetItemState(nItem, LVIS_STATEIMAGEMASK, LVIS_STATEIMAGEMASK); // ... return TRUE; } ``` 在上面的代码,我们使用 SetExtendedStyle 函数设置 ListCtrl 的风格,使其支持复选框。然后,使用 InsertColumn 函数添加列头,使用 InsertItem 函数添加行,并使用 SetItemState 函数设置复选框的状态。 注意:在 VC++2008 ,ListCtrl 的风格设置为 LVS_EX_CHECKBOXES 可以实现在非第一列复选框,但是该功能只在报表视图风格下有效。如果你的 ListCtrl 控件是其他视图风格(如图标视图或列表视图),则无法直接在非第一列复选框。你可以考虑使用自定义绘制来实现在其他视图风格下复选框的效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值