脚踏实地
全部博文(230)
分类: WINDOWS
2011-01-13 22:44:21
在对话框上添加视图 收藏
前两天有人问我:“我想显示一些列的图片,就类似在ScrollView中显示的那样,在对话框上能做吗?”。我当时就简单告诉她可以做,却没告诉如何做,因为在她并没有说清楚自己的需求时我也不便提出自己的建议。其实我刚毕业那年就做过类似一个应用,当时的我简直惊奇的不得了“对话框上还能放视图?!!!”。
原创文章,转帖请注明出处:blog.csdn.net/sjdev
说在前头
俗语常说:“丑话说在前头”。我现在也要把一些事情交代在前头,但却不是丑话。说这些的目的是:交代一些文中不会详细涉及的部分,有兴趣的可以自己研究。
1. 视图也是窗口,只不过是有特殊样式的窗口。
2. 对话框和普通Frame不同之处在于对话框有自己的消息循环。
3. 本文只是提供一个简单的演示示例,其他解决方案的更详细的说明请参看msdn.
创建项目
1. 使用MFC应用程序向导创建一个基于对话框的应用程序。工程名为:DlgViewDemo。
2. 打开对话框资源,修改程序默认创建的Static控件,使它充满整个对话框的2/3。然后将它的ID改为:IDC_WEBVIEW,Visible属性改改False,Sunken属性改为True。
3. 使用类向导添加一个MFC类,从CHtmlView派生(根据自己的需要派生,此处只是为了演示),类名为:CWebView。
4. 打开WebView.h文件,将构造函数前面的protected改为public。
5. 打开DlgViewDemoDlg.h,在类CDlgViewDemoDlg之前添加CWebView类的前置声明:class CWebView;然后在CDlgViewDemoDlg中添加CWebView *m_pWebView;
6. 打开DlgViewDemoDlg.cpp文件,添加CWebView类的头文件#include”webview.h”,然后在CDlgViewDemoDlg的构造函数中将m_pWebView初始化为NULL;在OnInitDialog中添加如下代码:
view plaincopy to clipboardprint?
CRect rcStatic;
GetDlgItem(IDC_WEBVIEW)->GetClientRect(&rcStatic);
m_pWebView->Create(NULL, NULL, WS_CHILD|WS_VISIBLE, rcStatic, this, 2009);
m_pWebView->ShowWindow(SW_SHOW);
m_pWebView->Navigate(_T("blog.csdn.net/sjdev"));
CRect rcStatic;
GetDlgItem(IDC_WEBVIEW)->GetClientRect(&rcStatic);
m_pWebView->Create(NULL, NULL, WS_CHILD|WS_VISIBLE, rcStatic, this, 2009);
m_pWebView->ShowWindow(SW_SHOW);
m_pWebView->Navigate(_T("blog.csdn.net/sjdev"));
运行程序
以下是程序运行示意图:
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/sjdev/archive/2010/01/13/5186620.aspx