windows-nt/Source/XPSP1/NT/shell/themes/test/mditest/childview.cpp

100 lines
2.3 KiB
C++
Raw Normal View History

2020-09-26 03:20:57 -05:00
// ChildView.cpp : implementation of the CChildView class
//
#include "stdafx.h"
#include "mditest.h"
#include "ChildView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CChildView
CChildView::CChildView()
: _hwndEdit(NULL)
{
}
CChildView::~CChildView()
{
}
BEGIN_MESSAGE_MAP(CChildView,CWnd )
//{{AFX_MSG_MAP(CChildView)
ON_WM_PAINT()
ON_WM_CREATE()
ON_WM_SIZE()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CChildView message handlers
BOOL CChildView::PreCreateWindow(CREATESTRUCT& cs)
{
if (!CWnd::PreCreateWindow(cs))
return FALSE;
cs.dwExStyle |= WS_EX_CLIENTEDGE;
cs.style &= ~WS_BORDER;
cs.lpszClass = AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW|CS_DBLCLKS,
::LoadCursor(NULL, IDC_ARROW), HBRUSH(COLOR_WINDOW+1), NULL);
return TRUE;
}
void CChildView::OnPaint()
{
CPaintDC dc(this); // device context for painting
// Do not call CWnd::OnPaint() for painting messages
}
int CChildView::OnCreate(LPCREATESTRUCT pcs)
{
if (CWnd ::OnCreate(pcs) == -1)
return -1;
RECT rc;
GetClientRect( &rc );
_hwndEdit = CreateWindowEx( 0, TEXT("Edit"), NULL,
WS_CHILD|WS_VISIBLE|WS_VSCROLL|ES_MULTILINE|ES_AUTOHSCROLL,
0, 0, RECTWIDTH(&rc), RECTHEIGHT(&rc), *this, NULL,
AfxGetInstanceHandle(), 0 );
if( IsWindow( _hwndEdit ) )
{
HFONT hf = CreateFont(-14, 0,0,0, FW_NORMAL, 0,0,0, ANSI_CHARSET, 0,0,0,0, TEXT("MS Sans Serif") );
if( hf )
::SendMessage( _hwndEdit, WM_SETFONT, (WPARAM)hf, 0 );
for( int i = 0; i < 100; i++ )
{
::SendMessage( _hwndEdit, EM_REPLACESEL, 0,
(LPARAM)TEXT("Some random text and some more random text and some more random text. ")\
TEXT("Some random text and some more random text and some more random text.\r\n") );
::SendMessage( _hwndEdit, EM_SETSEL, -1, -1 );
}
}
return 0;
}
void CChildView::OnSize(UINT nType, int cx, int cy)
{
CWnd ::OnSize(nType, cx, cy);
if( IsWindow( _hwndEdit ) )
{
::SetWindowPos( _hwndEdit, NULL, 0, 0, cx, cy, SWP_NOZORDER|SWP_NOACTIVATE );
}
}