// 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 ); } }