/* ダイアログデータの設定 */ void CDlgPrintSetting::SetData( void ) { HDC hdc; HWND hwndComboFont; HWND hwndComboPaper; HWND hwndComboSettingName; int i; int nItemIdx; int nSelectIdx; /* フォント一覧 */ hdc = ::GetDC( m_hwndParent ); hwndComboFont = GetItemHwnd( IDC_COMBO_FONT_HAN ); Combo_ResetContent( hwndComboFont ); hwndComboFont = GetItemHwnd( IDC_COMBO_FONT_ZEN ); Combo_ResetContent( hwndComboFont ); ::EnumFontFamilies( hdc, NULL, (FONTENUMPROC)SetData_EnumFontFamProc, (LPARAM)this ); ::ReleaseDC( m_hwndParent, hdc ); /* 用紙サイズ一覧 */ hwndComboPaper = GetItemHwnd( IDC_COMBO_PAPER ); Combo_ResetContent( hwndComboPaper ); // 2006.08.14 Moca 用紙名一覧の重複削除 for( i = 0; i < CPrint::m_nPaperInfoArrNum; ++i ){ nItemIdx = Combo_AddString( hwndComboPaper, CPrint::m_paperInfoArr[i].m_pszName ); Combo_SetItemData( hwndComboPaper, nItemIdx, CPrint::m_paperInfoArr[i].m_nId ); } /* 印刷設定名一覧 */ hwndComboSettingName = GetItemHwnd( IDC_COMBO_SETTINGNAME ); Combo_ResetContent( hwndComboSettingName ); nSelectIdx = 0; for( i = 0; i < MAX_PRINTSETTINGARR; ++i ){ nItemIdx = Combo_AddString( hwndComboSettingName, m_PrintSettingArr[i].m_szPrintSettingName ); Combo_SetItemData( hwndComboSettingName, nItemIdx, i ); if( i == m_nCurrentPrintSetting ){ nSelectIdx = nItemIdx; } } Combo_SetCurSel( hwndComboSettingName, nSelectIdx ); /* 設定のタイプが変わった */ OnChangeSettingType( FALSE ); return; }
/* ダイアログデータの設定 Keyword */ void CPropKeyword::SetData( HWND hwndDlg ) { int i; HWND hwndWork; /* セット名コンボボックスの値セット */ hwndWork = ::GetDlgItem( hwndDlg, IDC_COMBO_SET ); Combo_ResetContent( hwndWork ); /* コンボボックスを空にする */ if( 0 < m_Common.m_sSpecialKeyword.m_CKeyWordSetMgr.m_nKeyWordSetNum ){ for( i = 0; i < m_Common.m_sSpecialKeyword.m_CKeyWordSetMgr.m_nKeyWordSetNum; ++i ){ Combo_AddString( hwndWork, m_Common.m_sSpecialKeyword.m_CKeyWordSetMgr.GetTypeName( i ) ); } /* セット名コンボボックスのデフォルト選択 */ Combo_SetCurSel( hwndWork, m_Common.m_sSpecialKeyword.m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx ); /* ダイアログデータの設定 Keyword 指定キーワードセットの設定 */ SetKeyWordSet( hwndDlg, m_Common.m_sSpecialKeyword.m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx ); }else{ /* ダイアログデータの設定 Keyword 指定キーワードセットの設定 */ SetKeyWordSet( hwndDlg, -1 ); } return; }
/* ダイアログデータの設定 */ void CPropTab::SetData( HWND hwndDlg ) { // Feb. 11, 2007 genta「ウィンドウ」シートより移動 ::CheckDlgButton( hwndDlg, IDC_CHECK_DispTabWnd, m_Common.m_sTabBar.m_bDispTabWnd ); //@@@ 2003.05.31 MIK ::CheckDlgButton( hwndDlg, IDC_CHECK_SameTabWidth, m_Common.m_sTabBar.m_bSameTabWidth ); //@@@ 2006.01.28 ryoji ::CheckDlgButton( hwndDlg, IDC_CHECK_DispTabIcon, m_Common.m_sTabBar.m_bDispTabIcon ); //@@@ 2006.01.28 ryoji ::CheckDlgButton( hwndDlg, IDC_CHECK_SortTabList, m_Common.m_sTabBar.m_bSortTabList ); //@@@ 2006.03.23 fon CheckDlgButtonBool( hwndDlg, IDC_CHECK_TAB_MULTILINE, m_Common.m_sTabBar.m_bTabMultiLine ); ::CheckDlgButton( hwndDlg, IDC_CHECK_DispTabWndMultiWin, ! m_Common.m_sTabBar.m_bDispTabWndMultiWin ); //@@@ 2003.05.31 MIK EditCtl_LimitText( ::GetDlgItem( hwndDlg, IDC_TABWND_CAPTION ), _countof( m_Common.m_sTabBar.m_szTabWndCaption ) - 1 ); ::DlgItem_SetText( hwndDlg, IDC_TABWND_CAPTION, m_Common.m_sTabBar.m_szTabWndCaption ); HWND hwndCombo = ::GetDlgItem( hwndDlg, IDC_CHECK_DispTabClose ); Combo_ResetContent( hwndCombo ); int nSelPos = 0; for( int i = 0; i < _countof( DispTabCloseArr ); ++i ){ Combo_InsertString( hwndCombo, i, LS(DispTabCloseArr[i].nNameId) ); if( DispTabCloseArr[i].nMethod == m_Common.m_sTabBar.m_bDispTabClose ){ nSelPos = i; } } Combo_SetCurSel( hwndCombo, nSelPos ); hwndCombo = ::GetDlgItem( hwndDlg, IDC_COMBO_TAB_POSITION ); Combo_ResetContent( hwndCombo ); nSelPos = 0; for( int i = 0; i < _countof( TabPosArr ); ++i ){ Combo_InsertString( hwndCombo, i, LS(TabPosArr[i].nNameId) ); if( TabPosArr[i].nMethod == m_Common.m_sTabBar.m_eTabPosition ){ nSelPos = i; } } Combo_SetCurSel( hwndCombo, nSelPos ); // Feb. 11, 2007 genta 新規作成 ::CheckDlgButton( hwndDlg, IDC_CHECK_RetainEmptyWindow, m_Common.m_sTabBar.m_bTab_RetainEmptyWin ); ::CheckDlgButton( hwndDlg, IDC_CHECK_CloseOneWin, m_Common.m_sTabBar.m_bTab_CloseOneWin ); ::CheckDlgButton( hwndDlg, IDC_CHECK_ChgWndByWheel, m_Common.m_sTabBar.m_bChgWndByWheel ); // 2007.04.03 ryoji ::CheckDlgButton( hwndDlg, IDC_CHECK_OpenNewWin, m_Common.m_sTabBar.m_bNewWindow ); // 2009.06.17 // タブ フォント // 2013/4/24 Uchi m_hTabFont = SetFontLabel( hwndDlg, IDC_STATIC_TABFONT, m_Common.m_sTabBar.m_lf, m_Common.m_sTabBar.m_nPointSize); EnableTabPropInput(hwndDlg); }
/*! ダイアログデータの設定 */ void CDlgKeywordSelect::SetData( void ) { HWND hwndCombo; int i; int index; for( index = 0; index < KEYWORD_SELECT_NUM; index++ ) { hwndCombo = ::GetDlgItem( GetHwnd(), keyword_select_target_combo[ index ] ); /* コンボボックスを空にする */ Combo_ResetContent( hwndCombo ); /* 一行目は空白 */ Combo_AddString( hwndCombo, L" " ); if( m_pCKeyWordSetMgr->m_nKeyWordSetNum > 0 ) { for( i = 0; i < m_pCKeyWordSetMgr->m_nKeyWordSetNum; i++ ) { Combo_AddString( hwndCombo, m_pCKeyWordSetMgr->GetTypeName( i ) ); } if( -1 == m_nSet[ index ] ) { /* セット名コンボボックスのデフォルト選択 */ Combo_SetCurSel( hwndCombo, 0 ); } else { /* セット名コンボボックスのデフォルト選択 */ Combo_SetCurSel( hwndCombo, m_nSet[ index ] + 1 ); } } } }
/* ダイアログデータの設定 */ void CPropWin::SetData( HWND hwndDlg ) { // BOOL bRet; /* 次回ウィンドウを開いたときツールバーを表示する */ ::CheckDlgButton( hwndDlg, IDC_CHECK_DispTOOLBAR, m_Common.m_sWindow.m_bDispTOOLBAR ); /* 次回ウィンドウを開いたときファンクションキーを表示する */ ::CheckDlgButton( hwndDlg, IDC_CHECK_DispFUNCKEYWND, m_Common.m_sWindow.m_bDispFUNCKEYWND ); /* ファンクションキー表示位置/0:上 1:下 */ if( 0 == m_Common.m_sWindow.m_nFUNCKEYWND_Place ){ ::CheckDlgButton( hwndDlg, IDC_RADIO_FUNCKEYWND_PLACE1, TRUE ); ::CheckDlgButton( hwndDlg, IDC_RADIO_FUNCKEYWND_PLACE2, FALSE ); }else{ ::CheckDlgButton( hwndDlg, IDC_RADIO_FUNCKEYWND_PLACE1, FALSE ); ::CheckDlgButton( hwndDlg, IDC_RADIO_FUNCKEYWND_PLACE2, TRUE ); } // 2002/11/04 Moca ファンクションキーのグループボタン数 ::SetDlgItemInt( hwndDlg, IDC_EDIT_FUNCKEYWND_GROUPNUM, m_Common.m_sWindow.m_nFUNCKEYWND_GroupNum, FALSE ); //From Here@@@ 2003.06.13 MIK // Feb. 12, 2007 genta TAB関連は「タブバー」シートへ移動 //To Here@@@ 2003.06.13 MIK // Feb. 11, 2007 genta TAB関連は「タブバー」シートへ移動 /* 次回ウィンドウを開いたときステータスバーを表示する */ ::CheckDlgButton( hwndDlg, IDC_CHECK_DispSTATUSBAR, m_Common.m_sWindow.m_bDispSTATUSBAR ); /* ルーラー高さ */ ::SetDlgItemInt( hwndDlg, IDC_EDIT_nRulerHeight, m_Common.m_sWindow.m_nRulerHeight, FALSE ); /* ルーラーとテキストの隙間 */ ::SetDlgItemInt( hwndDlg, IDC_EDIT_nRulerBottomSpace, m_Common.m_sWindow.m_nRulerBottomSpace, FALSE ); // Sep. 18. 2002 genta 行番号とテキストの隙間 ::SetDlgItemInt( hwndDlg, IDC_EDIT_nLineNumberRightSpace, m_Common.m_sWindow.m_nLineNumRightSpace, FALSE ); /* ルーラーのタイプ */// del 2008/7/4 Uchi // if( 0 == m_Common.m_sWindow.m_nRulerType ){ // ::CheckDlgButton( hwndDlg, IDC_RADIO_nRulerType_0, TRUE ); // ::CheckDlgButton( hwndDlg, IDC_RADIO_nRulerType_1, FALSE ); // }else{ // ::CheckDlgButton( hwndDlg, IDC_RADIO_nRulerType_0, FALSE ); // ::CheckDlgButton( hwndDlg, IDC_RADIO_nRulerType_1, TRUE ); // } /* 水平スクロールバー */ ::CheckDlgButton( hwndDlg, IDC_CHECK_bScrollBarHorz, m_Common.m_sWindow.m_bScrollBarHorz ); /* アイコン付きメニュー */ ::CheckDlgButton( hwndDlg, IDC_CHECK_bMenuIcon, m_Common.m_sWindow.m_bMenuIcon ); // 2001/06/20 Start by asa-o: スクロールの同期 ::CheckDlgButton( hwndDlg, IDC_CHECK_SplitterWndVScroll, m_Common.m_sWindow.m_bSplitterWndVScroll ); ::CheckDlgButton( hwndDlg, IDC_CHECK_SplitterWndHScroll, m_Common.m_sWindow.m_bSplitterWndHScroll ); // 2001/06/20 End // Apr. 05, 2003 genta ウィンドウキャプションのカスタマイズ EditCtl_LimitText( ::GetDlgItem( hwndDlg, IDC_WINCAPTION_ACTIVE ), _countof( m_Common.m_sWindow.m_szWindowCaptionActive ) - 1 ); //@@@ 2003.06.13 MIK EditCtl_LimitText( ::GetDlgItem( hwndDlg, IDC_WINCAPTION_INACTIVE ), _countof( m_Common.m_sWindow.m_szWindowCaptionInactive ) - 1 ); //@@@ 2003.06.13 MIK ::DlgItem_SetText( hwndDlg, IDC_WINCAPTION_ACTIVE, m_Common.m_sWindow.m_szWindowCaptionActive ); ::DlgItem_SetText( hwndDlg, IDC_WINCAPTION_INACTIVE, m_Common.m_sWindow.m_szWindowCaptionInactive ); // Fronm Here Sept. 9, 2000 JEPRO // ファンクションキーを表示する時だけその位置指定をEnableに設定 EnableWinPropInput( hwndDlg ); // To Here Sept. 9, 2000 // 言語選択 HWND hwndCombo = ::GetDlgItem( hwndDlg, IDC_COMBO_LANGUAGE ); Combo_ResetContent( hwndCombo ); int nSelPos = 0; UINT uiIndex = 0; for( uiIndex = 0; uiIndex < CSelectLang::m_psLangInfoList.size(); uiIndex++ ){ CSelectLang::SSelLangInfo* psLangInfo = CSelectLang::m_psLangInfoList.at( uiIndex ); Combo_InsertString( hwndCombo, uiIndex, psLangInfo->szLangName ); if ( _tcscmp( m_Common.m_sWindow.m_szLanguageDll, psLangInfo->szDllName ) == 0 ) { nSelPos = uiIndex; } } Combo_SetCurSel( hwndCombo, nSelPos ); return; }
BOOL CDlgPrintSetting::OnBnClicked( int wID ) { TCHAR szWork[256]; CDlgInput1 cDlgInput1; HWND hwndComboSettingName; switch( wID ){ case IDC_BUTTON_HELP: /* 「印刷ページ設定」のヘルプ */ //Stonee, 2001/03/12 第四引数を、機能番号からヘルプトピック番号を調べるようにした MyWinHelp( GetHwnd(), HELP_CONTEXT, ::FuncID_To_HelpContextID(F_PRINT_PAGESETUP) ); // 2006.10.10 ryoji MyWinHelpに変更に変更 return TRUE; case IDC_BUTTON_EDITSETTINGNAME: _tcscpy( szWork, m_PrintSettingArr[m_nCurrentPrintSetting].m_szPrintSettingName ); { BOOL bDlgInputResult=cDlgInput1.DoModal( m_hInstance, GetHwnd(), LS(STR_DLGPRNST1), LS(STR_DLGPRNST2), _countof( m_PrintSettingArr[m_nCurrentPrintSetting].m_szPrintSettingName ) - 1, szWork ); if( !bDlgInputResult ){ return TRUE; } } if( szWork[0] != _T('\0') ){ int size = _countof(m_PrintSettingArr[0].m_szPrintSettingName) - 1; _tcsncpy( m_PrintSettingArr[m_nCurrentPrintSetting].m_szPrintSettingName, szWork, size); m_PrintSettingArr[m_nCurrentPrintSetting].m_szPrintSettingName[size] = _T('\0'); /* 印刷設定名一覧 */ hwndComboSettingName = GetItemHwnd( IDC_COMBO_SETTINGNAME ); Combo_ResetContent( hwndComboSettingName ); int nSelectIdx; int i; int nItemIdx; nSelectIdx = 0; for( i = 0; i < MAX_PRINTSETTINGARR; ++i ){ nItemIdx = Combo_AddString( hwndComboSettingName, m_PrintSettingArr[i].m_szPrintSettingName ); Combo_SetItemData( hwndComboSettingName, nItemIdx, i ); if( i == m_nCurrentPrintSetting ){ nSelectIdx = nItemIdx; } } Combo_SetCurSel( hwndComboSettingName, nSelectIdx ); } return TRUE; case IDC_BUTTON_FONT_HEAD: { LOGFONT lf = m_PrintSettingArr[m_nCurrentPrintSetting].m_lfHeader; INT nPointSize; if (lf.lfFaceName[0] == _T('\0')) { // 半角フォントを設定 auto_strcpy( lf.lfFaceName, m_PrintSettingArr[m_nCurrentPrintSetting].m_szPrintFontFaceHan ); // 1/10mm→画面ドット数 lf.lfHeight = -( m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintFontHeight * ::GetDeviceCaps ( ::GetDC( m_hwndParent ), LOGPIXELSY ) / 254 ); } if (MySelectFont( &lf, &nPointSize, GetHwnd(), false)) { m_PrintSettingArr[m_nCurrentPrintSetting].m_lfHeader = lf; m_PrintSettingArr[m_nCurrentPrintSetting].m_nHeaderPointSize = nPointSize; SetFontName( IDC_STATIC_FONT_HEAD, IDC_CHECK_USE_FONT_HEAD, m_PrintSettingArr[m_nCurrentPrintSetting].m_lfHeader, m_PrintSettingArr[m_nCurrentPrintSetting].m_nHeaderPointSize ); UpdatePrintableLineAndColumn(); } } return TRUE; case IDC_BUTTON_FONT_FOOT: { LOGFONT lf = m_PrintSettingArr[m_nCurrentPrintSetting].m_lfFooter; INT nPointSize; if (lf.lfFaceName[0] == _T('\0')) { // 半角フォントを設定 auto_strcpy( lf.lfFaceName, m_PrintSettingArr[m_nCurrentPrintSetting].m_szPrintFontFaceHan ); // 1/10mm→画面ドット数 lf.lfHeight = -( m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintFontHeight * ::GetDeviceCaps ( ::GetDC( m_hwndParent ), LOGPIXELSY ) / 254 ); } if (MySelectFont( &lf, &nPointSize, GetHwnd(), false)) { m_PrintSettingArr[m_nCurrentPrintSetting].m_lfFooter = lf; m_PrintSettingArr[m_nCurrentPrintSetting].m_nFooterPointSize = nPointSize; SetFontName( IDC_STATIC_FONT_FOOT, IDC_CHECK_USE_FONT_FOOT, m_PrintSettingArr[m_nCurrentPrintSetting].m_lfFooter, m_PrintSettingArr[m_nCurrentPrintSetting].m_nFooterPointSize ); UpdatePrintableLineAndColumn(); } } return TRUE; case IDC_CHECK_USE_FONT_HEAD: if (m_PrintSettingArr[m_nCurrentPrintSetting].m_lfHeader.lfFaceName[0] != _T('\0')) { memset( &m_PrintSettingArr[m_nCurrentPrintSetting].m_lfHeader, 0, sizeof(LOGFONT) ); m_PrintSettingArr[m_nCurrentPrintSetting].m_nHeaderPointSize = 0; SetFontName( IDC_STATIC_FONT_HEAD, IDC_CHECK_USE_FONT_HEAD, m_PrintSettingArr[m_nCurrentPrintSetting].m_lfHeader, m_PrintSettingArr[m_nCurrentPrintSetting].m_nHeaderPointSize ); } UpdatePrintableLineAndColumn(); return TRUE; case IDC_CHECK_USE_FONT_FOOT: if (m_PrintSettingArr[m_nCurrentPrintSetting].m_lfFooter.lfFaceName[0] != _T('\0')) { memset( &m_PrintSettingArr[m_nCurrentPrintSetting].m_lfFooter, 0, sizeof(LOGFONT) ); m_PrintSettingArr[m_nCurrentPrintSetting].m_nFooterPointSize = 0; SetFontName( IDC_STATIC_FONT_FOOT, IDC_CHECK_USE_FONT_FOOT, m_PrintSettingArr[m_nCurrentPrintSetting].m_lfFooter, m_PrintSettingArr[m_nCurrentPrintSetting].m_nFooterPointSize ); } UpdatePrintableLineAndColumn(); return TRUE; case IDOK: if( CalcPrintableLineAndColumn() ){ /* ダイアログデータの取得 */ ::EndDialog( GetHwnd(), GetData() ); } return TRUE; case IDCANCEL: ::EndDialog( GetHwnd(), FALSE ); return TRUE; case IDC_RADIO_PORTRAIT: case IDC_RADIO_LANDSCAPE: UpdatePrintableLineAndColumn(); break; // ここでは行と桁の更新要求のみ。後の処理はCDialogに任せる。 case IDC_CHECK_LINENUMBER: UpdatePrintableLineAndColumn(); break; // ここでは行と桁の更新要求のみ。後の処理はCDialogに任せる。 } /* 基底クラスメンバ */ return CDialog::OnBnClicked( wID ); }