【VC开源代码栏目提醒】:以下是网学会员为您推荐的VC开源代码-ex71View.cpp,希望本篇文章对您学习有所帮助。
// ex71View.cpp : Cex71View 类的实现
//
#include "stdafx.h"
#include "ex71.h"
#include "ex71Doc.h"
#include "ex71View.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// Cex71View
IMPLEMENT_DYNCREATE(Cex71View, CView)
BEGIN_MESSAGE_MAP(Cex71View, CView)
// 标准打印命令
ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
ON_WM_CREATE()
ON_WM_SIZE()
ON_COMMAND(ID_GETSELECTION, OnGetselection)
ON_UPDATE_COMMAND_UI(ID_GETSELECTION, OnUpdateGetselection)
ON_WM_SETFOCUS()
END_MESSAGE_MAP()
// Cex71View 构造/销毁
Cex71View::Cex71View()
{
// TODO: 在此处添加构造代码
}
Cex71View::~Cex71View()
{
}
BOOL Cex71View::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: 在此处通过修改 CREATESTRUCT cs 来修改窗口类或
// 样式
return CView::PreCreateWindow(cs);
}
// Cex71View 绘制
void Cex71View::OnDraw(CDC* pDC)
{
Cex71Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: 在此处为本机数据添加绘制代码
pDC->TextOut(0,0,m_str);
}
// Cex71View 打印
BOOL Cex71View::OnPreparePrinting(CPrintInfo* pInfo)
{
// 默认准备
return DoPreparePrinting(pInfo);
}
void Cex71View::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: 打印前添加额外的初始化
}
void Cex71View::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: 打印后添加清除过程
}
// Cex71View 诊断
#ifdef _DEBUG
void Cex71View::AssertValid() const
{
CView::AssertValid();
}
void Cex71View::Dump(CDumpContext& dc) const
{
CView::Dump(dc);
}
Cex71Doc* Cex71View::GetDocument() const // 非调试版本是内联的
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(Cex71Doc)));
return (Cex71Doc*)m_pDocument;
}
#endif //_DEBUG
// Cex71View 消息处理程序
int Cex71View::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: 在此添加您专用的创建代码
//*****************创建内嵌编辑框对象窗口************
CRect rect(0,0,0,0);
m_rich.Create(ES_AUTOVSCROLL | ES_MULTILINE | ES_WANTRETURN |
WS_CHILD|WS_VISIBLE | WS_VSCROLL|WS_BORDER, rect, this, 1);
m_b=TRUE;
return 0;
}
void Cex71View::OnSize(UINT nType, int cx, int cy)
{
CView::OnSize(nType, cx, cy);
// TODO: 在此添加消息处理程序代码
//*****************内嵌编辑框对象窗口定位********************
CRect rect;
GetClientRect(rect);
m_rich.SetWindowPos(&wndTop, rect.right*3/4, rect.bottom/2,
rect.right/4, rect.bottom/2, SWP_SHOWWINDOW);
//*****************确定内嵌编辑框对象窗口中字体********************
if(m_b){
static CHARFORMAT cf;
cf.dwMask = CFM_COLOR | CFM_FACE |CFM_SIZE |CFM_CHARSET;
cf.yHeight = 260;
cf.crTextColor = RGB(255, 0, 0);
strcpy(cf.szFaceName, "Arial");
cf.bCharSet = ANSI_CHARSET;
m_rich.SetDefaultCharFormat(cf);
//*****************设置内嵌编辑框对象窗口提示信息***************
m_str="请输入并选取!";
m_rich.SetWindowText(m_str);
m_str="";
m_b=FALSE;
}
}
void Cex71View::OnGetselection()
{
// TODO: 在此添加命令处理
程序代码
m_str="";
Invalidate();
UpdateWindow(); //将视区清除
m_str=m_rich.GetSelText(); //获取编辑框被选择的部分数据
CClientDC dc(this);
dc.TextOut(0,0,m_str); //将获取的编辑框数据显示出耒
}
void Cex71View::OnUpdateGetselection(CCmdUI *pCmdUI)
{
// TODO: 在此添加命令更新用户界面处理程序代码
if(m_rich.GetSelectionType()==SEL_TEXT) //如果编辑框被选择,菜单变黑
pCmdUI->Enable();
if(m_rich.GetSelectionType()==SEL_EMPTY) //如果编辑框未被选择,菜单变灰
pCmdUI->Enable(FALSE);
}
void Cex71View::OnSetFocus(CWnd* pOldWnd)
{
CView::OnSetFocus(pOldWnd);
// TODO: 在此添加消息处理程序代码
//设置内嵌编辑框对象窗口输入焦点
m_rich.PostMessage(WM_LBUTTONDOWN,0,0);
m_rich.PostMessage(WM_SETFOCUS,0,0);
}