📄 cdlgprintsetting.cpp
字号:
::SetDlgItemInt( m_hWnd, IDC_EDIT_MARGINRX, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginRX / 10, FALSE );
/* ヘッダー */
::SetDlgItemText( m_hWnd, IDC_EDIT_HEAD1, m_PrintSettingArr[m_nCurrentPrintSetting].m_szHeaderForm[POS_LEFT] ); // 100文字で制限しないと。。。
::SetDlgItemText( m_hWnd, IDC_EDIT_HEAD2, m_PrintSettingArr[m_nCurrentPrintSetting].m_szHeaderForm[POS_CENTER] ); // 100文字で制限しないと。。。
::SetDlgItemText( m_hWnd, IDC_EDIT_HEAD3, m_PrintSettingArr[m_nCurrentPrintSetting].m_szHeaderForm[POS_RIGHT] ); // 100文字で制限しないと。。。
/* フッター */
::SetDlgItemText( m_hWnd, IDC_EDIT_FOOT1, m_PrintSettingArr[m_nCurrentPrintSetting].m_szFooterForm[POS_LEFT] ); // 100文字で制限しないと。。。
::SetDlgItemText( m_hWnd, IDC_EDIT_FOOT2, m_PrintSettingArr[m_nCurrentPrintSetting].m_szFooterForm[POS_CENTER] ); // 100文字で制限しないと。。。
::SetDlgItemText( m_hWnd, IDC_EDIT_FOOT3, m_PrintSettingArr[m_nCurrentPrintSetting].m_szFooterForm[POS_RIGHT] ); // 100文字で制限しないと。。。
if( m_PrintSettingArr[m_nCurrentPrintSetting].m_bPrintWordWrap ){
::CheckDlgButton( m_hWnd, IDC_CHECK_WORDWRAP, BST_CHECKED );
}else{
::CheckDlgButton( m_hWnd, IDC_CHECK_WORDWRAP, BST_UNCHECKED );
}
if( m_PrintSettingArr[m_nCurrentPrintSetting].m_bPrintLineNumber ){
::CheckDlgButton( m_hWnd, IDC_CHECK_LINENUMBER, BST_CHECKED );
}else{
::CheckDlgButton( m_hWnd, IDC_CHECK_LINENUMBER, BST_UNCHECKED );
}
/* フォント一覧 */
hwndCtrl = ::GetDlgItem( m_hWnd, IDC_COMBO_FONT_HAN );
nIdx1 = ::SendMessage( hwndCtrl, CB_FINDSTRING, 0, (LPARAM)m_PrintSettingArr[m_nCurrentPrintSetting].m_szPrintFontFaceHan );
::SendMessage( hwndCtrl, CB_SETCURSEL, nIdx1, 0 );
/* フォント一覧 */
hwndCtrl = ::GetDlgItem( m_hWnd, IDC_COMBO_FONT_ZEN );
nIdx1 = ::SendMessage( hwndCtrl, CB_FINDSTRING, 0, (LPARAM)m_PrintSettingArr[m_nCurrentPrintSetting].m_szPrintFontFaceZen );
::SendMessage( hwndCtrl, CB_SETCURSEL, nIdx1, 0 );
/* 用紙サイズ一覧 */
hwndCtrl = ::GetDlgItem( m_hWnd, IDC_COMBO_PAPER );
nItemNum = ::SendMessage( hwndCtrl, CB_GETCOUNT, 0, 0 );
for( i = 0; i < nItemNum; ++i ){
nItemData = ::SendMessage( hwndCtrl, CB_GETITEMDATA, i, 0 );
if( m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintPaperSize == nItemData ){
::SendMessage( hwndCtrl, CB_SETCURSEL, i, 0 );
break;
}
}
/* 用紙方向一覧 */
hwndCtrl = ::GetDlgItem( m_hWnd, IDC_COMBO_PAPERORIENT );
nItemNum = ::SendMessage( hwndCtrl, CB_GETCOUNT, 0, 0 );
for( i = 0; i < nItemNum; ++i ){
nItemData = ::SendMessage( hwndCtrl, CB_GETITEMDATA, i, 0 );
if( m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintPaperOrientation == nItemData ){
::SendMessage( hwndCtrl, CB_SETCURSEL, i, 0 );
break;
}
}
// 行頭禁則 //@@@ 2002.04.09 MIK
if( m_PrintSettingArr[m_nCurrentPrintSetting].m_bPrintKinsokuHead ){
::CheckDlgButton( m_hWnd, IDC_CHECK_PS_KINSOKUHEAD, BST_CHECKED );
}else{
::CheckDlgButton( m_hWnd, IDC_CHECK_PS_KINSOKUHEAD, BST_UNCHECKED );
}
// 行末禁則 //@@@ 2002.04.09 MIK
if( m_PrintSettingArr[m_nCurrentPrintSetting].m_bPrintKinsokuTail ){
::CheckDlgButton( m_hWnd, IDC_CHECK_PS_KINSOKUTAIL, BST_CHECKED );
}else{
::CheckDlgButton( m_hWnd, IDC_CHECK_PS_KINSOKUTAIL, BST_UNCHECKED );
}
// 改行文字をぶら下げる //@@@ 2002.04.13 MIK
if( m_PrintSettingArr[m_nCurrentPrintSetting].m_bPrintKinsokuRet ){
::CheckDlgButton( m_hWnd, IDC_CHECK_PS_KINSOKURET, BST_CHECKED );
}else{
::CheckDlgButton( m_hWnd, IDC_CHECK_PS_KINSOKURET, BST_UNCHECKED );
}
// 句読点をぶら下げる //@@@ 2002.04.17 MIK
if( m_PrintSettingArr[m_nCurrentPrintSetting].m_bPrintKinsokuKuto ){
::CheckDlgButton( m_hWnd, IDC_CHECK_PS_KINSOKUKUTO, BST_CHECKED );
}else{
::CheckDlgButton( m_hWnd, IDC_CHECK_PS_KINSOKUKUTO, BST_UNCHECKED );
}
return;
}
/* スピンコントロールの処理 */
void CDlgPrintSetting::OnSpin( int nCtrlId, BOOL bDown )
{
int nData;
BOOL bUnknown;
int nCtrlIdEDIT;
bUnknown = FALSE;
switch( nCtrlId ){
case IDC_SPIN_FONTWIDTH:
nCtrlIdEDIT = IDC_EDIT_FONTWIDTH;
nData = ::GetDlgItemInt( m_hWnd, nCtrlIdEDIT, NULL, FALSE );
if( bDown ){
nData-=1;
}else{
nData+=1;
}
break;
case IDC_SPIN_LINESPACE:
nCtrlIdEDIT = IDC_EDIT_LINESPACE;
nData = ::GetDlgItemInt( m_hWnd, nCtrlIdEDIT, NULL, FALSE );
if( bDown ){
nData-=10;
}else{
nData+=10;
}
break;
case IDC_SPIN_DANSUU:
nCtrlIdEDIT = IDC_EDIT_DANSUU;
nData = ::GetDlgItemInt( m_hWnd, nCtrlIdEDIT, NULL, FALSE );
if( bDown ){
nData--;
}else{
++nData;
}
break;
case IDC_SPIN_DANSPACE:
nCtrlIdEDIT = IDC_EDIT_DANSPACE;
nData = ::GetDlgItemInt( m_hWnd, nCtrlIdEDIT, NULL, FALSE );
if( bDown ){
nData--;
}else{
++nData;
}
break;
case IDC_SPIN_MARGINTY:
nCtrlIdEDIT = IDC_EDIT_MARGINTY;
nData = ::GetDlgItemInt( m_hWnd, nCtrlIdEDIT, NULL, FALSE );
if( bDown ){
nData--;
}else{
++nData;
}
break;
case IDC_SPIN_MARGINBY:
nCtrlIdEDIT = IDC_EDIT_MARGINBY;
nData = ::GetDlgItemInt( m_hWnd, nCtrlIdEDIT, NULL, FALSE );
if( bDown ){
nData--;
}else{
++nData;
}
break;
case IDC_SPIN_MARGINLX:
nCtrlIdEDIT = IDC_EDIT_MARGINLX;
nData = ::GetDlgItemInt( m_hWnd, nCtrlIdEDIT, NULL, FALSE );
if( bDown ){
nData--;
}else{
++nData;
}
break;
case IDC_SPIN_MARGINRX:
nCtrlIdEDIT = IDC_EDIT_MARGINRX;
nData = ::GetDlgItemInt( m_hWnd, nCtrlIdEDIT, NULL, FALSE );
if( bDown ){
nData--;
}else{
++nData;
}
break;
default:
bUnknown = TRUE;
break;
}
if( !bUnknown ){
/* 入力値(数値)のエラーチェックをして正しい値を返す */
nData = DataCheckAndCrrect( nCtrlIdEDIT, nData );
::SetDlgItemInt( m_hWnd, nCtrlIdEDIT, nData, FALSE );
}
return;
}
/* 入力値(数値)のエラーチェックをして正しい値を返す */
int CDlgPrintSetting::DataCheckAndCrrect( int nCtrlId, int nData )
{
// int nData;
switch( nCtrlId ){
case IDC_EDIT_FONTWIDTH:
if( 7 >= nData ){
nData = 7;
}
if( 100 < nData ){
nData = 100;
}
break;
case IDC_EDIT_LINESPACE:
if( 0 >= nData ){
nData = 0;
}
if( 150 < nData ){
nData = 150;
}
break;
case IDC_EDIT_DANSUU:
if( 1 >= nData ){
nData = 1;
}
if( 4 < nData ){
nData = 4;
}
break;
case IDC_EDIT_DANSPACE:
if( 0 >= nData ){
nData = 0;
}
if( 30 < nData ){
nData = 30;
}
break;
case IDC_EDIT_MARGINTY:
if( 0 >= nData ){
nData = 0;
}
if( 50 < nData ){
nData = 50;
}
break;
case IDC_EDIT_MARGINBY:
if( 0 >= nData ){
nData = 0;
}
if( 50 < nData ){
nData = 50;
}
break;
case IDC_EDIT_MARGINLX:
if( 0 >= nData ){
nData = 0;
}
if( 50 < nData ){
nData = 50;
}
break;
case IDC_EDIT_MARGINRX:
if( 0 >= nData ){
nData = 0;
}
if( 50 < nData ){
nData = 50;
}
break;
}
return nData;
}
/* タイマー処理 */
BOOL CDlgPrintSetting::OnTimer( WPARAM wParam )
{
int nTimer;
int nEnableColmns; /* 行あたりの文字数 */
int nEnableLines; /* 縦方向の行数 */
// int nEnableLinesAll; /* ページあたりの行数 */
MYDEVMODE dmDummy; // 2003.05.18 かろと 型変更
int nPaperAllWidth; /* 用紙幅 */
int nPaperAllHeight; /* 用紙高さ */
PRINTSETTING* pPS;
nTimer = (int)wParam;
if( nTimer != IDT_PRINTSETTING ){
return FALSE;
}
/* ダイアログデータの取得 */
GetData();
// SetData( m_hWnd );
pPS = &m_PrintSettingArr[m_nCurrentPrintSetting];
dmDummy.dmFields = DM_PAPERSIZE | DMORIENT_LANDSCAPE;
dmDummy.dmPaperSize = pPS->m_nPrintPaperSize;
dmDummy.dmOrientation = pPS->m_nPrintPaperOrientation;
/* 用紙の幅、高さ */
if( FALSE == CPrint::GetPaperSize(
&nPaperAllWidth,
&nPaperAllHeight,
&dmDummy
) ){
// 2001.12.21 hor GetPaperSize失敗時はそのまま終了
// nPaperAllWidth = 210 * 10; /* 用紙幅 */
// nPaperAllHeight = 297 * 10; /* 用紙高さ */
return FALSE;
}
/* 行あたりの文字数(行番号込み) */
nEnableColmns =
( nPaperAllWidth - pPS->m_nPrintMarginLX - pPS->m_nPrintMarginRX
- ( pPS->m_nPrintDansuu - 1 ) * pPS->m_nPrintDanSpace
// - ( pPS->m_nPrintDansuu ) * ( ( m_nPreview_LineNumberColmns /*+ (m_nPreview_LineNumberColmns?1:0)*/ ) * pPS->m_nPrintFontWidth )
) / pPS->m_nPrintFontWidth / pPS->m_nPrintDansuu; /* 印字可能桁数/ページ */
/* 縦方向の行数 */
nEnableLines =
( nPaperAllHeight - pPS->m_nPrintMarginTY - pPS->m_nPrintMarginBY ) /
( pPS->m_nPrintFontHeight + ( pPS->m_nPrintFontHeight * pPS->m_nPrintLineSpacing / 100 ) ) - 4; /* 印字可能行数/ページ */
// /* ページあたりの行数 */
// nEnableLinesAll = nEnableLines * pPS->m_nPrintDansuu;
::SetDlgItemInt( m_hWnd, IDC_STATIC_ENABLECOLMNS, nEnableColmns, FALSE );
::SetDlgItemInt( m_hWnd, IDC_STATIC_ENABLELINES, nEnableLines, FALSE );
// ::SetDlgItemInt( m_hWnd, IDC_STATIC_ENABLELINESALL, nEnableLinesAll, FALSE );
return TRUE;
}
//@@@ 2002.01.18 add start
LPVOID CDlgPrintSetting::GetHelpIdTable(void)
{
return (LPVOID)p_helpids;
}
//@@@ 2002.01.18 add end
/*[EOF]*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -