112 lines
3.3 KiB
C++
112 lines
3.3 KiB
C++
|
// hello.cpp : Defines the class behaviors for the application.
|
||
|
// Hello is a simple program which consists of a main window
|
||
|
// and an "About" dialog which can be invoked by a menu choice.
|
||
|
// It is intended to serve as a starting-point for new
|
||
|
// applications.
|
||
|
//
|
||
|
// This is a part of the Microsoft Foundation Classes C++ library.
|
||
|
// Copyright (C) 1992-1998 Microsoft Corporation
|
||
|
// All rights reserved.
|
||
|
//
|
||
|
// This source code is only intended as a supplement to the
|
||
|
// Microsoft Foundation Classes Reference and related
|
||
|
// electronic documentation provided with the library.
|
||
|
// See these sources for detailed information regarding the
|
||
|
// Microsoft Foundation Classes product.
|
||
|
|
||
|
#include "stdafx.h"
|
||
|
#include "resource.h"
|
||
|
|
||
|
#include "hello.h"
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
// theApp:
|
||
|
// Just creating this application object runs the whole application.
|
||
|
//
|
||
|
CTheApp NEAR theApp;
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
// CMainWindow constructor:
|
||
|
// Create the window with the appropriate style, size, menu, etc.
|
||
|
//
|
||
|
CMainWindow::CMainWindow()
|
||
|
{
|
||
|
LoadFrame(IDR_MAINFRAME);
|
||
|
}
|
||
|
|
||
|
// OnPaint:
|
||
|
// This routine draws the string "Hello, Windows!" in the center of the
|
||
|
// client area. It is called whenever Windows sends a WM_PAINT message.
|
||
|
// Note that creating a CPaintDC automatically does a BeginPaint and
|
||
|
// an EndPaint call is done when it is destroyed at the end of this
|
||
|
// function. CPaintDC's constructor needs the window (this).
|
||
|
//
|
||
|
void CMainWindow::OnPaint()
|
||
|
{
|
||
|
CRect rect;
|
||
|
GetClientRect(rect);
|
||
|
|
||
|
CPaintDC dc(this);
|
||
|
dc.SetTextAlign(TA_BASELINE | TA_CENTER);
|
||
|
dc.SetTextColor(::GetSysColor(COLOR_WINDOWTEXT));
|
||
|
dc.SetBkMode(TRANSPARENT);
|
||
|
CString s;
|
||
|
s.LoadString(IDS_HELLO);
|
||
|
dc.TextOut((rect.right / 2), (rect.bottom / 2), s);
|
||
|
}
|
||
|
|
||
|
// OnAbout:
|
||
|
// This member function is called when a WM_COMMAND message with an
|
||
|
// ID_APP_ABOUT code is received by the CMainWindow class object. The
|
||
|
// message map below is responsible for this routing.
|
||
|
//
|
||
|
// We create a ClDialog object using the "AboutBox" resource (see
|
||
|
// hello.rc), and invoke it.
|
||
|
//
|
||
|
void CMainWindow::OnAbout()
|
||
|
{
|
||
|
CDialog about(IDD_ABOUTBOX);
|
||
|
about.DoModal();
|
||
|
}
|
||
|
|
||
|
// CMainWindow message map:
|
||
|
// Associate messages with member functions.
|
||
|
//
|
||
|
// It is implied that the ON_WM_PAINT macro expects a member function
|
||
|
// "void OnPaint()".
|
||
|
//
|
||
|
// It is implied that members connected with the ON_COMMAND macro
|
||
|
// receive no arguments and are void of return type, e.g., "void OnAbout()".
|
||
|
//
|
||
|
BEGIN_MESSAGE_MAP( CMainWindow, CFrameWnd )
|
||
|
//{{AFX_MSG_MAP( CMainWindow )
|
||
|
ON_WM_PAINT()
|
||
|
ON_COMMAND(ID_APP_ABOUT, OnAbout)
|
||
|
//}}AFX_MSG_MAP
|
||
|
END_MESSAGE_MAP()
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// CTheApp
|
||
|
|
||
|
// InitInstance:
|
||
|
// When any CTheApp object is created, this member function is automatically
|
||
|
// called. Any data may be set up at this point.
|
||
|
//
|
||
|
// Also, the main window of the application should be created and shown here.
|
||
|
// Return TRUE if the initialization is successful.
|
||
|
//
|
||
|
BOOL CTheApp::InitInstance()
|
||
|
{
|
||
|
TRACE0("CTheApp::InitInstance\n");
|
||
|
|
||
|
Enable3dControls(); // use 3d controls in dialogs
|
||
|
|
||
|
m_pMainWnd = new CMainWindow;
|
||
|
m_pMainWnd->ShowWindow(m_nCmdShow);
|
||
|
m_pMainWnd->UpdateWindow();
|
||
|
|
||
|
return TRUE;
|
||
|
}
|