root/RulerView.cpp
/* [<][>][^][v][top][bottom][index][help] */
DEFINITIONS
This source file includes following definitions.
- IMPLEMENT_DYNCREATE
- CRulerView
- BEGIN_MESSAGE_MAP
- AssertValid
- Dump
- OnInitialUpdate
- PreCreateWindow
- OnSetFocus
- SetRulerSel
- OnLButtonDblClk
- OnLButtonDown
- OnLButtonUp
- OnRButtonDblClk
- OnRButtonDown
- OnRButtonUp
- OnKeyDown
- OnKeyUp
- OnChar
- OnCancelMode
/*
* Copyright (C) 2002-2003 chik, s.hiranaka
* For license terms, see the file COPYING in this directory.
*/
// RulerView.cpp : インプリメンテーション ファイル
//
#include "stdafx.h"
#include "Pochy.h"
#include "RulerView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CRulerView
IMPLEMENT_DYNCREATE(CRulerView, CRichEditView)
CRulerView::CRulerView()
{
}
CRulerView::~CRulerView()
{
}
BEGIN_MESSAGE_MAP(CRulerView, CRichEditView)
//{{AFX_MSG_MAP(CRulerView)
ON_WM_SETFOCUS()
ON_WM_LBUTTONDBLCLK()
ON_WM_LBUTTONDOWN()
ON_WM_LBUTTONUP()
ON_WM_RBUTTONDBLCLK()
ON_WM_RBUTTONDOWN()
ON_WM_RBUTTONUP()
ON_WM_KEYDOWN()
ON_WM_KEYUP()
ON_WM_CHAR()
ON_WM_CANCELMODE()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CRulerView 描画
void CRulerView::OnDraw(CDC* pDC)
{
CDocument* pDoc = GetDocument();
// TODO: この位置に描画用のコードを追加してください
}
/////////////////////////////////////////////////////////////////////////////
// CRulerView 診断
#ifdef _DEBUG
void CRulerView::AssertValid() const
{
CView::AssertValid();
}
void CRulerView::Dump(CDumpContext& dc) const
{
CView::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CRulerView メッセージ ハンドラ
void CRulerView::OnInitialUpdate()
{
// デフォルトの文字属性設定
CHARFORMAT2 cf;
CRichEditCtrl& r = GetRichEditCtrl();
r.GetDefaultCharFormat(cf);
cf.dwMask = CFM_COLOR | CFM_PROTECTED | CFM_FACE | CFM_SIZE | CFM_CHARSET | CFM_SUBSCRIPT;
cf.crTextColor = RGB(50, 30, 150);
cf.dwEffects = CFE_PROTECTED | CFE_SUBSCRIPT;
// フォントを変える
m_font_size = 8;
strncpy(cf.szFaceName,"FixedSys",8);
cf.szFaceName[8]='\0';
cf.bPitchAndFamily=FIXED_PITCH;
cf.bCharSet=SHIFTJIS_CHARSET;
cf.yHeight=280;
r.SetDefaultCharFormat(cf);
cf.cbSize=sizeof(cf);
r.SendMessage(EM_SETCHARFORMAT,(WPARAM)SCF_ALL,(LPARAM)&cf);
// 行間を調整する
PARAFORMAT2 pf;
pf.cbSize = sizeof(pf);
pf.dwMask = PFM_LINESPACING | PFM_SPACEAFTER;
pf.dySpaceAfter = 0;
pf.bLineSpacingRule = 4;
pf.dyLineSpacing = 280;
r.SendMessage(EM_SETPARAFORMAT,0,(LPARAM)&pf);
// オートスクロールの扱いについて
m_nWordWrap = WrapNone;
WrapChanged(); // 折り返しなし
r.SetOptions(ECOOP_OR, ECO_AUTOHSCROLL);
// r.SendMessage(EM_SETEVENTMASK, 0, ENM_SCROLL);
CString ruler;
ruler = "----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0";
SetWindowText(ruler);
r.SetReadOnly();
CRichEditView::OnInitialUpdate();
}
BOOL CRulerView::PreCreateWindow(CREATESTRUCT& cs)
{
BOOL bPreCreated = CRichEditView::PreCreateWindow(cs);
cs.style &= ~(WS_VSCROLL | WS_HSCROLL |ES_MULTILINE);// | ES_AUTOVSCROLL); //| ES_AUTOVSCROLL WS_VSCROLL |
cs.style |= ES_AUTOHSCROLL;
return bPreCreated;
}
void CRulerView::OnSetFocus(CWnd* pOldWnd)
{
// CRichEditView::OnSetFocus(pOldWnd);
}
void CRulerView::SetRulerSel(int p)
{
/* CRect rect1;
this->GetWindowRect(rect1);
ScreenToClient(&rect1);*/
CRichEditCtrl& r = GetRichEditCtrl();
r.SetSel(p, p+1);
}
void CRulerView::OnLButtonDblClk(UINT nFlags, CPoint point)
{
// CRichEditView::OnLButtonDblClk(nFlags, point);
}
void CRulerView::OnLButtonDown(UINT nFlags, CPoint point)
{
/* CRichEditCtrl& r = GetRichEditCtrl();
r.LineScroll(-1,0);
SendMessage(EM_SCROLLCARET , 0, 0);
CRichEditView::OnLButtonDown(nFlags, point);*/
}
void CRulerView::OnLButtonUp(UINT nFlags, CPoint point)
{
// CRichEditView::OnLButtonUp(nFlags, point);
}
void CRulerView::OnRButtonDblClk(UINT nFlags, CPoint point)
{
// CRichEditView::OnRButtonDblClk(nFlags, point);
}
void CRulerView::OnRButtonDown(UINT nFlags, CPoint point)
{
// CRichEditView::OnRButtonDown(nFlags, point);
}
void CRulerView::OnRButtonUp(UINT nFlags, CPoint point)
{
// CRichEditView::OnRButtonUp(nFlags, point);
}
void CRulerView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
CDraftFrame* df = (CDraftFrame*)GetParentFrame();
df->KeyDown(nChar,this);
// CRichEditView::OnKeyDown(nChar, nRepCnt, nFlags);
}
void CRulerView::OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// CRichEditView::OnKeyUp(nChar, nRepCnt, nFlags);
}
void CRulerView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
TRACE("char=%d\n",nChar);
CDraftFrame* df = (CDraftFrame*)GetParentFrame();
df->Char(nChar,this);
// CRichEditView::OnChar(nChar, nRepCnt, nFlags);
}
void CRulerView::OnCancelMode()
{
CRichEditView::OnCancelMode();
}