请问如何在CScrollView类中添加滑杆条控件?? 最好有完整的源代码!第一次做,真的是不会,赶着要,也没时间再去翻书,跪求高手帮忙!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 头文件 MYScrollViewView.h// MYScrollViewView.h : CMYScrollViewView 类的接口//#pragma onceclass CMYScrollViewView : public CScrollView{protected: // 仅从序列化创建 CMYScrollViewView(); DECLARE_DYNCREATE(CMYScrollViewView)// 属性public: CMYScrollViewDoc* GetDocument() const;// 操作public:// 重写 public: virtual void OnDraw(CDC* pDC); // 重写以绘制该视图virtual BOOL PreCreateWindow(CREATESTRUCT& cs);protected: virtual void OnInitialUpdate(); // 构造后第一次调用 virtual BOOL OnPreparePrinting(CPrintInfo* pInfo); virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo); virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);// 实现public: virtual ~CMYScrollViewView();#ifdef _DEBUG virtual void AssertValid() const; virtual void Dump(CDumpContext& dc) const;#endifprotected:// 生成的消息映射函数protected: DECLARE_MESSAGE_MAP()public: afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); CSliderCtrl m_ctrl; afx_msg void OnSize(UINT nType, int cx, int cy);};#ifndef _DEBUG // MYScrollViewView.cpp 的调试版本inline CMYScrollViewDoc* CMYScrollViewView::GetDocument() const { return reinterpret_cast<CMYScrollViewDoc*>(m_pDocument); }#endif 实现文件 MYScrollViewView.cpp// MYScrollViewView.cpp : CMYScrollViewView 类的实现//#include "stdafx.h"#include "MYScrollView.h"#include "MYScrollViewDoc.h"#include "MYScrollViewView.h"#include ".\myscrollviewview.h"#ifdef _DEBUG#define new DEBUG_NEW#endif// CMYScrollViewViewIMPLEMENT_DYNCREATE(CMYScrollViewView, CScrollView)BEGIN_MESSAGE_MAP(CMYScrollViewView, CScrollView) // 标准打印命令 ON_COMMAND(ID_FILE_PRINT, CScrollView::OnFilePrint) ON_COMMAND(ID_FILE_PRINT_DIRECT, CScrollView::OnFilePrint) ON_COMMAND(ID_FILE_PRINT_PREVIEW, CScrollView::OnFilePrintPreview) ON_WM_CREATE() ON_WM_SIZE()END_MESSAGE_MAP()// CMYScrollViewView 构造/析构CMYScrollViewView::CMYScrollViewView(){ // TODO: 在此处添加构造代码}CMYScrollViewView::~CMYScrollViewView(){}BOOL CMYScrollViewView::PreCreateWindow(CREATESTRUCT& cs){ // TODO: 在此处通过修改 CREATESTRUCT cs 来修改窗口类或 // 样式 return CScrollView::PreCreateWindow(cs);}// CMYScrollViewView 绘制void CMYScrollViewView::OnDraw(CDC* /*pDC*/){ CMYScrollViewDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if (!pDoc) return; // TODO: 在此处为本机数据添加绘制代码}void CMYScrollViewView::OnInitialUpdate(){ CScrollView::OnInitialUpdate(); CSize sizeTotal; // TODO: 计算此视图的合计大小 sizeTotal.cx = sizeTotal.cy = 100; SetScrollSizes(MM_TEXT, sizeTotal);}// CMYScrollViewView 打印BOOL CMYScrollViewView::OnPreparePrinting(CPrintInfo* pInfo){ // 默认准备 return DoPreparePrinting(pInfo);}void CMYScrollViewView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/){ // TODO: 打印前添加额外的初始化}void CMYScrollViewView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/){ // TODO: 打印后添加清除过程}// CMYScrollViewView 诊断#ifdef _DEBUGvoid CMYScrollViewView::AssertValid() const{ CScrollView::AssertValid();}void CMYScrollViewView::Dump(CDumpContext& dc) const{ CScrollView::Dump(dc);}CMYScrollViewDoc* CMYScrollViewView::GetDocument() const // 非调试版本是内联的{ ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CMYScrollViewDoc))); return (CMYScrollViewDoc*)m_pDocument;}#endif //_DEBUG// CMYScrollViewView 消息处理程序int CMYScrollViewView::OnCreate(LPCREATESTRUCT lpCreateStruct){ if (CScrollView::OnCreate(lpCreateStruct) == -1) return -1; // TODO: 在此添加您专用的创建代码 m_ctrl.Create(WS_VISIBLE|WS_CHILD|TBS_HORZ, CRect(0,0,0,0), this, 123); return 0;}void CMYScrollViewView::OnSize(UINT nType, int cx, int cy){ CScrollView::OnSize(nType, cx, cy); // TODO: 在此处添加消息处理程序代码 m_ctrl.MoveWindow(0,0, cx, 20);} 要点:1、响应WM_CREATE,创建 SliderCtrl2、响应WM_SIZE, 将该控件移到视图顶部 输入表拦截修改问题 求详细的解答 区域填充的问题,请高手帮忙看一下.急啊!!! 急,宽带网自动登录软件,编程中遇到问题,就几句话,请高手指点。 程序执行耗时操作时,用于提示用户的小窗口是怎样实现的? 高分!!害的好惨!!!求一个把3721等拦截弹出窗口失效的代码吗? 调试程序时,提示错误 网络设计师通过率是多少? 欢迎大家帮我解决,感谢!!! 菜鸟求助,关于serilize的问题 安装SQL2000 个人版的时候遇到的问题 进来看看 谢谢!! WinExec返回值的问题
//
#pragma once
class CMYScrollViewView : public CScrollView
{
protected: // 仅从序列化创建
CMYScrollViewView();
DECLARE_DYNCREATE(CMYScrollViewView)// 属性
public:
CMYScrollViewDoc* GetDocument() const;// 操作
public:// 重写
public:
virtual void OnDraw(CDC* pDC); // 重写以绘制该视图
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
protected:
virtual void OnInitialUpdate(); // 构造后第一次调用
virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);// 实现
public:
virtual ~CMYScrollViewView();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endifprotected:// 生成的消息映射函数
protected:
DECLARE_MESSAGE_MAP()
public:
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); CSliderCtrl m_ctrl;
afx_msg void OnSize(UINT nType, int cx, int cy);
};#ifndef _DEBUG // MYScrollViewView.cpp 的调试版本
inline CMYScrollViewDoc* CMYScrollViewView::GetDocument() const
{ return reinterpret_cast<CMYScrollViewDoc*>(m_pDocument); }
#endif
//#include "stdafx.h"
#include "MYScrollView.h"#include "MYScrollViewDoc.h"
#include "MYScrollViewView.h"
#include ".\myscrollviewview.h"#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CMYScrollViewViewIMPLEMENT_DYNCREATE(CMYScrollViewView, CScrollView)BEGIN_MESSAGE_MAP(CMYScrollViewView, CScrollView)
// 标准打印命令
ON_COMMAND(ID_FILE_PRINT, CScrollView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CScrollView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CScrollView::OnFilePrintPreview)
ON_WM_CREATE()
ON_WM_SIZE()
END_MESSAGE_MAP()// CMYScrollViewView 构造/析构CMYScrollViewView::CMYScrollViewView()
{
// TODO: 在此处添加构造代码}CMYScrollViewView::~CMYScrollViewView()
{
}BOOL CMYScrollViewView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: 在此处通过修改 CREATESTRUCT cs 来修改窗口类或
// 样式 return CScrollView::PreCreateWindow(cs);
}// CMYScrollViewView 绘制void CMYScrollViewView::OnDraw(CDC* /*pDC*/)
{
CMYScrollViewDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return; // TODO: 在此处为本机数据添加绘制代码
}void CMYScrollViewView::OnInitialUpdate()
{
CScrollView::OnInitialUpdate();
CSize sizeTotal;
// TODO: 计算此视图的合计大小
sizeTotal.cx = sizeTotal.cy = 100;
SetScrollSizes(MM_TEXT, sizeTotal);
}
// CMYScrollViewView 打印BOOL CMYScrollViewView::OnPreparePrinting(CPrintInfo* pInfo)
{
// 默认准备
return DoPreparePrinting(pInfo);
}void CMYScrollViewView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: 打印前添加额外的初始化
}void CMYScrollViewView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: 打印后添加清除过程
}
// CMYScrollViewView 诊断#ifdef _DEBUG
void CMYScrollViewView::AssertValid() const
{
CScrollView::AssertValid();
}void CMYScrollViewView::Dump(CDumpContext& dc) const
{
CScrollView::Dump(dc);
}CMYScrollViewDoc* CMYScrollViewView::GetDocument() const // 非调试版本是内联的
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CMYScrollViewDoc)));
return (CMYScrollViewDoc*)m_pDocument;
}
#endif //_DEBUG
// CMYScrollViewView 消息处理程序int CMYScrollViewView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CScrollView::OnCreate(lpCreateStruct) == -1)
return -1; // TODO: 在此添加您专用的创建代码
m_ctrl.Create(WS_VISIBLE|WS_CHILD|TBS_HORZ, CRect(0,0,0,0), this, 123); return 0;
}void CMYScrollViewView::OnSize(UINT nType, int cx, int cy)
{
CScrollView::OnSize(nType, cx, cy); // TODO: 在此处添加消息处理程序代码
m_ctrl.MoveWindow(0,0, cx, 20);
}
1、响应WM_CREATE,创建 SliderCtrl
2、响应WM_SIZE, 将该控件移到视图顶部