⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cdlgprintpage.cpp

📁 日本的开源编辑器源码
💻 CPP
字号:
//	$Id: CDlgPrintPage.cpp,v 1.8 2003/09/19 16:41:16 genta Exp $
/*!	@file
	@brief 印刷ダイアログボックス

	@author Norio Nakatani
	$Revision: 1.8 $
*/
/*
	Copyright (C) 1998-2001, Norio Nakatani

	This source code is designed for sakura editor.
	Please contact the copyright holder to use this code for other purpose.
*/
#include "CDlgPrintPage.h"
#include "sakura_rc.h"
#include "Debug.h"// 2002/2/10 aroka

// 印刷 CDlgPrintPage.cpp	//@@@ 2002.01.07 add start MIK
#include "sakura.hh"
const DWORD p_helpids[] = {	//12400
	IDOK,							HIDOK_PP,				//OK
	IDCANCEL,						HIDCANCEL_PP,			//キャンセル
	IDC_EDIT_FROM,					HIDC_PP_EDIT_FROM,		//ページから
	IDC_EDIT_TO,					HIDC_PP_EDIT_TO,		//ページまで
	IDC_RADIO_ALL,					HIDC_PP_RADIO_ALL,		//すべて
	IDC_RADIO_FROMTO,				HIDC_PP_RADIO_FROMTO,	//指定
//	IDC_STATIC,						-1,
	0, 0
};	//@@@ 2002.01.07 add end MIK

CDlgPrintPage::CDlgPrintPage()
{
	return;
}




/* モーダルダイアログの表示 */
int CDlgPrintPage::DoModal( HINSTANCE hInstance, HWND hwndParent, LPARAM lParam )
{
	return (int)CDialog::DoModal( hInstance, hwndParent, IDD_PRINTPAGE, lParam );
}




/* ダイアログデータの設定 */
void CDlgPrintPage::SetData( void )
{
	char szText[100];
//	From Here Sept. 12, 2000 JEPRO スタイルを少し変更(指定を選んだ時だけ印刷範囲を入力できるようにした)
//	一度設定したページ設定値を保存できるようにしたいがまだできてない
//	::CheckDlgButton( m_hWnd, IDC_RADIO_ALL, m_bAllPage?BST_CHECKED:BST_UNCHECKED );
//	wsprintf( szText, "%d ~ %d 頁", m_nPageMin, m_nPageMax );
//	::SetDlgItemText( m_hWnd, IDC_STATIC_ALL, szText );
//
//	::SetDlgItemInt( m_hWnd, IDC_EDIT_FROM, m_nPageFrom, FALSE );
//	::SetDlgItemInt( m_hWnd, IDC_EDIT_TO, m_nPageTo, FALSE );
//
	if( TRUE == m_bAllPage ){
		::CheckDlgButton( m_hWnd, IDC_RADIO_ALL, BST_CHECKED );
	}else{
		::CheckDlgButton( m_hWnd, IDC_RADIO_FROMTO, BST_CHECKED );
	}
	wsprintf( szText, "%d ~ %d ページ", m_nPageMin, m_nPageMax );
	::SetDlgItemText( m_hWnd, IDC_STATIC_ALL, szText );

	::SetDlgItemInt( m_hWnd, IDC_EDIT_FROM, m_nPageFrom, FALSE );
	::SetDlgItemInt( m_hWnd, IDC_EDIT_TO, m_nPageTo, FALSE );

	//	印刷範囲を指定するかどうか
	if( FALSE == m_bAllPage ){
		::EnableWindow( ::GetDlgItem( m_hWnd, IDC_LABEL_FROM ), TRUE );
		::EnableWindow( ::GetDlgItem( m_hWnd, IDC_EDIT_FROM ), TRUE );
		::EnableWindow( ::GetDlgItem( m_hWnd, IDC_LABEL_TO ), TRUE );
		::EnableWindow( ::GetDlgItem( m_hWnd, IDC_EDIT_TO ), TRUE );
	}else{
		::EnableWindow( ::GetDlgItem( m_hWnd, IDC_LABEL_FROM ), FALSE );
		::EnableWindow( ::GetDlgItem( m_hWnd, IDC_EDIT_FROM ), FALSE );
		::EnableWindow( ::GetDlgItem( m_hWnd, IDC_LABEL_TO ), FALSE );
		::EnableWindow( ::GetDlgItem( m_hWnd, IDC_EDIT_TO ), FALSE );
	}
//	To Here Sept. 12, 2000

	return;
}




/* ダイアログデータの取得 */
int CDlgPrintPage::GetData( void )
{
	if( BST_CHECKED == ::IsDlgButtonChecked( m_hWnd, IDC_RADIO_ALL ) ){
		m_bAllPage = TRUE;
	}else{
		m_bAllPage = FALSE;
	}
	m_nPageFrom = ::GetDlgItemInt( m_hWnd, IDC_EDIT_FROM, NULL, FALSE );
	m_nPageTo	= ::GetDlgItemInt( m_hWnd, IDC_EDIT_TO  , NULL, FALSE );
	/* 頁範囲チェック */
	if( FALSE == m_bAllPage ){
		if( m_nPageMin <= m_nPageFrom && m_nPageFrom <= m_nPageMax &&
			m_nPageMin <= m_nPageTo   && m_nPageTo <= m_nPageMax &&
			m_nPageFrom <= m_nPageTo
		){
		}else{
			::MYMESSAGEBOX(	m_hWnd, MB_OK | MB_ICONSTOP | MB_TOPMOST, "入力エラー", "ページ範囲指定が正しくありません。" );
			return FALSE;
		}
	}
	return TRUE;
}




BOOL CDlgPrintPage::OnBnClicked( int wID )
{
	switch( wID ){
//	From Here Sept. 12, 2000 JEPRO スタイルを少し変更(指定を選んだ時だけ印刷範囲を入力できるようにした)
//	一度設定したページ設定値を保存できるようにしたいがまだできてない
	case IDC_RADIO_ALL:
	case IDC_RADIO_FROMTO:
	//	印刷範囲を指定するかどうか
		if( ::IsDlgButtonChecked( m_hWnd, IDC_RADIO_FROMTO ) ){
			::EnableWindow( ::GetDlgItem( m_hWnd, IDC_LABEL_FROM ), TRUE );
			::EnableWindow( ::GetDlgItem( m_hWnd, IDC_EDIT_FROM ), TRUE );
			::EnableWindow( ::GetDlgItem( m_hWnd, IDC_LABEL_TO ), TRUE );
			::EnableWindow( ::GetDlgItem( m_hWnd, IDC_EDIT_TO ), TRUE );
		}else{
			::EnableWindow( ::GetDlgItem( m_hWnd, IDC_LABEL_FROM ), FALSE );
			::EnableWindow( ::GetDlgItem( m_hWnd, IDC_EDIT_FROM ), FALSE );
			::EnableWindow( ::GetDlgItem( m_hWnd, IDC_LABEL_TO ), FALSE );
			::EnableWindow( ::GetDlgItem( m_hWnd, IDC_EDIT_TO ), FALSE );
		}
		return TRUE;
//	To Here Sept. 12, 2000

	case IDOK:			/* 下検索 */
		/* ダイアログデータの取得 */
		if( GetData() ){
			CloseDialog( 1 );
		}
		return TRUE;
	case IDCANCEL:
		CloseDialog( 0 );
		return TRUE;
	}
	return FALSE;
}

//@@@ 2002.01.18 add start
LPVOID CDlgPrintPage::GetHelpIdTable(void)
{
	return (LPVOID)p_helpids;
}
//@@@ 2002.01.18 add end

/*[EOF]*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -