[BACK]Return to MainFrm.cpp CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / windows / asir32gui

File: [local] / OpenXM_contrib2 / windows / asir32gui / MainFrm.cpp (download)

Revision 1.3, Mon Apr 2 01:03:31 2001 UTC (23 years, 1 month ago) by noro
Branch: MAIN
CVS Tags: R_1_3_1-2, RELEASE_1_3_1_13b, RELEASE_1_2_3_12, RELEASE_1_2_3, RELEASE_1_2_2_KNOPPIX_b, RELEASE_1_2_2_KNOPPIX, RELEASE_1_2_2, RELEASE_1_2_1, KNOPPIX_2006, HEAD, DEB_REL_1_2_3-9
Changes since 1.2: +1 -1 lines

Initial font is set to a fixed width font.
Added font selection menu (experimental).

// MainFrm.cpp : CMainFrame クラスの動作の定義を行います。
//

#include "stdafx.h"
#include "asir32gui.h"

#include "MainFrm.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CMainFrame

IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)

BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
	//{{AFX_MSG_MAP(CMainFrame)
	ON_WM_CREATE()
	//}}AFX_MSG_MAP
	ON_UPDATE_COMMAND_UI(ID_INDICATOR_HEAP,OnUpdateHeapSize)
END_MESSAGE_MAP()

static UINT indicators[] =
{
	ID_SEPARATOR,           // ステータス ライン インジケータ
	ID_INDICATOR_KANA,
	ID_INDICATOR_CAPS,
	ID_INDICATOR_NUM,
	ID_INDICATOR_SCRL,
	ID_INDICATOR_HEAP,
};

/////////////////////////////////////////////////////////////////////////////
// CMainFrame クラスの構築/消滅

CMainFrame *theFrame;

CMainFrame::CMainFrame()
{
	// TODO: この位置にメンバの初期化処理コードを追加してください。
	theFrame = this;	
}

CMainFrame::~CMainFrame()
{
}

extern "C" {
	extern int asirgui_kind;
}

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
	if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
		return -1;
		
	if ( asirgui_kind == ASIRGUI_MAIN ) {
		if (!m_wndToolBar.Create(this) ||
			!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
		{
			TRACE0("Failed to create toolbar\n");
			return -1;      // 作成に失敗
		}
	
		if (!m_wndStatusBar.Create(this) ||
			!m_wndStatusBar.SetIndicators(indicators,
		  	sizeof(indicators)/sizeof(UINT)))
		{
			TRACE0("Failed to create status bar\n");
			return -1;      // 作成に失敗
		}
	
		// TODO: もしツール チップスが必要ない場合、ここを削除してください。
		m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle() |
			CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
	
		// TODO: ツール バーをドッキング可能にしない場合は以下の3行を削除
		//       してください。
		m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
		EnableDocking(CBRS_ALIGN_ANY);
		DockControlBar(&m_wndToolBar);
	}
	return 0;
}

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: この位置で CREATESTRUCT cs を修正して、Window クラスやスタイルを
	//       修正してください。
	if ( asirgui_kind == ASIRGUI_MAIN ) {
	   	cs.cx = ::GetSystemMetrics(SM_CXSCREEN)*2 / 3; 
		cs.cy = ::GetSystemMetrics(SM_CYSCREEN)*2 / 3; 
	} else {
	   	cs.cx = ::GetSystemMetrics(SM_CXSCREEN)*2 / 5; 
		cs.cy = ::GetSystemMetrics(SM_CYSCREEN)*1 / 5; 
	}

	return CFrameWnd::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CMainFrame クラスの診断

#ifdef _DEBUG
void CMainFrame::AssertValid() const
{
	CFrameWnd::AssertValid();
}

void CMainFrame::Dump(CDumpContext& dc) const
{
	CFrameWnd::Dump(dc);
}

#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CMainFrame メッセージ ハンドラ

extern "C" {
	extern int AsirHeapSize;

void show_window(int on)
{
	if ( on )
		theFrame->ShowWindow(SW_SHOW);
	else
		theFrame->ShowWindow(SW_HIDE);
}
}

void CMainFrame::OnUpdateHeapSize(CCmdUI *pCmdUI)
{
	pCmdUI->Enable();
	CString strHeap;
	strHeap.Format("HeapSize %dBytes",AsirHeapSize);
	pCmdUI->SetText(strHeap);
}