/* ダイアログデータの設定 */ 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; }
BOOL CDlgGrep::OnInitDialog( HWND hwndDlg, WPARAM wParam, LPARAM lParam ) { _SetHwnd( hwndDlg ); /* ユーザーがコンボボックスのエディット コントロールに入力できるテキストの長さを制限する */ // Combo_LimitText( ::GetDlgItem( GetHwnd(), IDC_COMBO_TEXT ), _MAX_PATH - 1 ); Combo_LimitText( ::GetDlgItem( GetHwnd(), IDC_COMBO_FILE ), _MAX_PATH - 1 ); Combo_LimitText( ::GetDlgItem( GetHwnd(), IDC_COMBO_FOLDER ), _MAX_PATH - 1 ); /* コンボボックスのユーザー インターフェイスを拡張インターフェースにする */ Combo_SetExtendedUI( ::GetDlgItem( GetHwnd(), IDC_COMBO_TEXT ), TRUE ); Combo_SetExtendedUI( ::GetDlgItem( GetHwnd(), IDC_COMBO_FILE ), TRUE ); Combo_SetExtendedUI( ::GetDlgItem( GetHwnd(), IDC_COMBO_FOLDER ), TRUE ); /* ダイアログのアイコン */ //2002.02.08 Grepアイコンも大きいアイコンと小さいアイコンを別々にする。 HICON hIconBig, hIconSmall; // Dec, 2, 2002 genta アイコン読み込み方法変更 hIconBig = GetAppIcon( m_hInstance, ICON_DEFAULT_GREP, FN_GREP_ICON, false ); hIconSmall = GetAppIcon( m_hInstance, ICON_DEFAULT_GREP, FN_GREP_ICON, true ); ::SendMessageAny( GetHwnd(), WM_SETICON, ICON_SMALL, (LPARAM)hIconSmall ); ::SendMessageAny( GetHwnd(), WM_SETICON, ICON_BIG, (LPARAM)hIconBig ); // 2002/09/22 Moca Add int i; /* 文字コードセット選択コンボボックス初期化 */ CCodeTypesForCombobox cCodeTypes; for( i = 0; i < cCodeTypes.GetCount(); ++i ){ int idx = Combo_AddString( ::GetDlgItem( GetHwnd(), IDC_COMBO_CHARSET ), cCodeTypes.GetName(i) ); Combo_SetItemData( ::GetDlgItem( GetHwnd(), IDC_COMBO_CHARSET ), idx, cCodeTypes.GetCode(i) ); } // 2007.02.09 bosagami HWND hFolder = ::GetDlgItem( GetHwnd(), IDC_COMBO_FOLDER ); DragAcceptFiles(hFolder, true); g_pOnFolderProc = (WNDPROC)GetWindowLongPtr(hFolder, GWLP_WNDPROC); SetWindowLongPtr(hFolder, GWLP_WNDPROC, (LONG_PTR)OnFolderProc); m_comboDelText = SComboBoxItemDeleter(); m_comboDelText.pRecent = &m_cRecentSearch; SetComboBoxDeleter(GetItemHwnd(IDC_COMBO_TEXT), &m_comboDelText); m_comboDelFile = SComboBoxItemDeleter(); m_comboDelFile.pRecent = &m_cRecentGrepFile; SetComboBoxDeleter(GetItemHwnd(IDC_COMBO_FILE), &m_comboDelFile); m_comboDelFolder = SComboBoxItemDeleter(); m_comboDelFolder.pRecent = &m_cRecentGrepFolder; SetComboBoxDeleter(GetItemHwnd(IDC_COMBO_FOLDER), &m_comboDelFolder); // フォント設定 2012/11/27 Uchi HFONT hFontOld = (HFONT)::SendMessageAny( GetItemHwnd( IDC_COMBO_TEXT ), WM_GETFONT, 0, 0 ); HFONT hFont = SetMainFont( GetItemHwnd( IDC_COMBO_TEXT ) ); m_cFontText.SetFont( hFontOld, hFont, GetItemHwnd( IDC_COMBO_TEXT ) ); /* 基底クラスメンバ */ // CreateSizeBox(); return CDialog::OnInitDialog( hwndDlg, wParam, lParam ); }
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 ); }
/* ダイアログデータの設定 */ void CDlgJump::SetData( void ) { CEditDoc* pCEditDoc = (CEditDoc*)m_lParam; CFuncInfoArr cFuncInfoArr; int i; HWND hwndCtrl; wchar_t szText[1024]; int nIndexCurSel = 0; // Sep. 11, 2004 genta 初期化 int nIndex; int nWorkLine; //$$ 条件により、レイアウト・ロジックの単位が混在するため、ミスの原因になりやすい int nPLSQLBlockNum; // GetHwnd() = hwndDlg; //From Here Oct. 7, 2000 JEPRO 前回入力した行番号を保持するように下行を変更 // ::DlgItem_SetText( GetHwnd(), IDC_EDIT_LINENUM, "" ); /* 行番号 */ if( 0 == m_nLineNum ){ ::DlgItem_SetText( GetHwnd(), IDC_EDIT_LINENUM, _T("") ); /* 行番号 */ }else{ ::SetDlgItemInt( GetHwnd(), IDC_EDIT_LINENUM, m_nLineNum, FALSE ); /* 前回の行番号 */ } //To Here Oct. 7, 2000 ::SetDlgItemInt( GetHwnd(), IDC_EDIT_PLSQL_E1, m_nPLSQL_E1, FALSE ); /* PL/SQL関数リスト作成 */ hwndCtrl = ::GetDlgItem( GetHwnd(), IDC_COMBO_PLSQLBLOCKS ); /* タイプ別に設定されたアウトライン解析方法 */ if( OUTLINE_PLSQL == pCEditDoc->m_cDocType.GetDocumentAttribute().m_eDefaultOutline ){ pCEditDoc->m_cDocOutline.MakeFuncList_PLSQL( &cFuncInfoArr ); } nWorkLine = -1; nIndex = 0; nPLSQLBlockNum = 0; for( i = 0; i < cFuncInfoArr.GetNum(); ++i ){ if( 31 == cFuncInfoArr.GetAt( i )->m_nInfo || 41 == cFuncInfoArr.GetAt( i )->m_nInfo ){ } if( 31 == cFuncInfoArr.GetAt( i )->m_nInfo ){ if( m_pShareData->m_bLineNumIsCRLF_ForJump ){ /* 行番号の表示 false=折り返し単位/true=改行単位 */ auto_sprintf( szText, LSW(STR_DLGJUMP_PSLQL), cFuncInfoArr.GetAt( i )->m_nFuncLineCRLF, cFuncInfoArr.GetAt( i )->m_cmemFuncName.GetStringPtr() ); }else{ auto_sprintf( szText, LSW(STR_DLGJUMP_PSLQL), cFuncInfoArr.GetAt( i )->m_nFuncLineLAYOUT, cFuncInfoArr.GetAt( i )->m_cmemFuncName.GetStringPtr() ); } nIndex = Combo_AddString( hwndCtrl, szText ); if( m_pShareData->m_bLineNumIsCRLF_ForJump ){ /* 行番号の表示 false=折り返し単位/true=改行単位 */ Combo_SetItemData( hwndCtrl, nIndex, (Int)cFuncInfoArr.GetAt( i )->m_nFuncLineCRLF ); } else{ Combo_SetItemData( hwndCtrl, nIndex, (Int)cFuncInfoArr.GetAt( i )->m_nFuncLineLAYOUT ); } nPLSQLBlockNum++; } if( 41 == cFuncInfoArr.GetAt( i )->m_nInfo ){ if( m_pShareData->m_bLineNumIsCRLF_ForJump ){ /* 行番号の表示 false=折り返し単位/true=改行単位 */ auto_sprintf( szText, LSW(STR_DLGJUMP_PSLQL), cFuncInfoArr.GetAt( i )->m_nFuncLineCRLF, cFuncInfoArr.GetAt( i )->m_cmemFuncName.GetStringPtr() ); }else{ auto_sprintf( szText, LSW(STR_DLGJUMP_PSLQL), cFuncInfoArr.GetAt( i )->m_nFuncLineLAYOUT, cFuncInfoArr.GetAt( i )->m_cmemFuncName.GetStringPtr() ); } nIndexCurSel = nIndex = Combo_AddString( hwndCtrl, szText ); if( m_pShareData->m_bLineNumIsCRLF_ForJump ){ /* 行番号の表示 false=折り返し単位/true=改行単位 */ nWorkLine = (Int)cFuncInfoArr.GetAt( i )->m_nFuncLineCRLF; Combo_SetItemData( hwndCtrl, nIndex, (Int)cFuncInfoArr.GetAt( i )->m_nFuncLineCRLF ); }else{ nWorkLine = (Int)cFuncInfoArr.GetAt( i )->m_nFuncLineLAYOUT; Combo_SetItemData( hwndCtrl, nIndex, (Int)cFuncInfoArr.GetAt( i )->m_nFuncLineLAYOUT ); } ++nPLSQLBlockNum; } } Combo_SetCurSel( hwndCtrl, nIndexCurSel ); /* PL/SQLのパッケージ本体が検出された場合 */ if( -1 != nWorkLine ){ m_nPLSQL_E1 = nWorkLine; ::SetDlgItemInt( GetHwnd(), IDC_EDIT_PLSQL_E1, m_nPLSQL_E1, FALSE ); } /* PL/SQLのパッケージブロックが検出された場合 */ if( 0 < nPLSQLBlockNum ){ m_bPLSQL = TRUE; } ::CheckDlgButton( GetHwnd(), IDC_CHECK_PLSQL, m_bPLSQL ); /* PL/SQLソースの有効行か */ if( BST_CHECKED == ::IsDlgButtonChecked( GetHwnd(), IDC_CHECK_PLSQL ) ){ ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_LABEL_PLSQL1 ), TRUE ); //Sept. 12, 2000 JEPRO ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_LABEL_PLSQL2 ), TRUE ); //Sept. 12, 2000 JEPRO ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_LABEL_PLSQL3 ), TRUE ); //Sept. 12, 2000 JEPRO ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_EDIT_PLSQL_E1 ), TRUE ); ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_SPIN_PLSQL_E1 ), TRUE ); //Oct. 6, 2000 JEPRO ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_COMBO_PLSQLBLOCKS ), TRUE ); m_pShareData->m_bLineNumIsCRLF_ForJump = true; ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_RADIO_LINENUM_LAYOUT ), FALSE ); ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_RADIO_LINENUM_CRLF ), FALSE ); }else{ ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_LABEL_PLSQL1 ), FALSE ); //Sept. 12, 2000 JEPRO ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_LABEL_PLSQL2 ), FALSE ); //Sept. 12, 2000 JEPRO ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_LABEL_PLSQL3 ), FALSE ); //Sept. 12, 2000 JEPRO ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_EDIT_PLSQL_E1 ), FALSE ); ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_SPIN_PLSQL_E1 ), FALSE ); //Oct. 6, 2000 JEPRO ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_COMBO_PLSQLBLOCKS ), FALSE ); ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_RADIO_LINENUM_LAYOUT ), TRUE ); ::EnableWindow( ::GetDlgItem( GetHwnd(), IDC_RADIO_LINENUM_CRLF ), TRUE ); } /* 行番号の表示 false=折り返し単位/true=改行単位 */ if( m_pShareData->m_bLineNumIsCRLF_ForJump ){ ::CheckDlgButton( GetHwnd(), IDC_RADIO_LINENUM_LAYOUT, FALSE ); ::CheckDlgButton( GetHwnd(), IDC_RADIO_LINENUM_CRLF, TRUE ); }else{ ::CheckDlgButton( GetHwnd(), IDC_RADIO_LINENUM_LAYOUT, TRUE ); ::CheckDlgButton( GetHwnd(), IDC_RADIO_LINENUM_CRLF, FALSE ); } return; }