每台windows电脑都默认安装了ie,所以我想制作一个使用ie显示网页的程序!我希望程序只是一个没有地址栏的简单窗口!我还想在程序中添加关闭、最大化和最小化按钮。我也想为程序添加图标!知道我该怎么做吗?
1 回答
假设您使用 MFC,这相当简单。使用 AppWizard 创建 MFC 应用程序。在 AppWizard 选项的第一页中,将“应用程序样式”更改为“MFC 标准”并(可能)将其更改为“单个文档”程序。在最后一页中,将视图的基类从 CView 更改为 CFormView。
转到项目的资源视图,然后编辑IDD_<project_name>_FORM
对话框。它最初会包含一个静态控件,说明“在此处插入控件”。删除该静态控件,然后右键单击表单并选择“插入 ActiveX 控件...”。这将弹出一个 ActiveX 控件列表。从列表中选择“Microsoft Web 浏览器”。
这将在您的窗口中放置一个(小)网络浏览器(您可能希望拉伸它以填充窗口)。右键单击控件,然后选择“添加变量...”。这将打开一个对话框,您需要在其中填写变量的名称(例如,您可以将其命名为“浏览器”)。
然后切换到类视图并选择您的视图类。在下部窗格中,双击“OnInitialUpdate”。在该函数已经存在的代码之后,添加如下行:
browser.Navigate("http://www.google.com", NULL, NULL, NULL, NULL);
[显然将“http://www.google.com”替换为您要显示的网站的 URL]。
编译并运行,(假设您的计算机已连接到 Internet 等)它应该会在启动时打开所选网页。
您可能还想在视图中为 WM_SIZE 添加一个处理程序,并在/如果用户调整窗口大小时让它调整控件的大小以填充窗口。这有点复杂,因为您的窗口将在您的控件完全初始化之前收到 WM_SIZE 消息。因此,您通常希望添加一个名为“control_valid”之类的布尔变量。在视图的构造函数中将其初始化为“false”。在“导航”调用之后的 OnInitialUpdate 代码中,添加“valid = true;”。然后在 WM_SIZE 处理程序中,仅在(有效)时调整控件的大小,例如:
void Cbrowse_fixedView::OnSize(UINT nType, int cx, int cy)
{
CFormView::OnSize(nType, cx, cy);
// This is the block of code we added:
if(valid) {
CRect rect;
GetClientRect(&rect);
m_browser.MoveWindow(&rect);
}
}
这样,当用户调整应用程序窗口的大小时,浏览器控件将始终调整大小以填充窗口。