📄 cpropcomfile.cpp
字号:
// break;
//@@@ 2001.02.04 End
//@@@ 2001.12.22 Start by MIK: Context Menu Help
//Context Menu
case WM_CONTEXTMENU:
::WinHelp( hwndDlg, m_szHelpFile, HELP_CONTEXTMENU, (ULONG_PTR)(LPVOID)p_helpids );
return TRUE;
//@@@ 2001.12.22 End
}
return FALSE;
}
/*! ファイルページ: ダイアログデータの設定
共有メモリからデータを読み出して各コントロールに値を設定する。
@par バックアップ世代数が妥当な値かどうかのチェックも行う。不適切な値の時は
最も近い適切な値を設定する。
@param hwndDlg プロパティページのWindow Handle
*/
void CPropCommon::SetData_p2( HWND hwndDlg )
{
/*--- p2 ---*/
/* ファイルの排他制御モード */
switch( m_Common.m_nFileShareMode ){
case OF_SHARE_DENY_WRITE: /* 書き込み禁止 */
::CheckDlgButton( hwndDlg, IDC_CHECK_EXCVLUSIVE_WRITE, BST_CHECKED );
break;
case OF_SHARE_EXCLUSIVE: /* 読み書き禁止 */
::CheckDlgButton( hwndDlg, IDC_CHECK_EXCVLUSIVE_READWRITE, BST_CHECKED );
break;
case 0: /* 排他なし */
default: /* 排他なし */
::CheckDlgButton( hwndDlg, IDC_CHECK_EXCVLUSIVE_NO, BST_CHECKED );
break;
}
/* 更新の監視 */
::CheckDlgButton( hwndDlg, IDC_CHECK_bCheckFileTimeStamp, m_Common.m_bCheckFileTimeStamp );
/* 無変更でも上書きするか */
::CheckDlgButton( hwndDlg, IDC_CHECK_ENABLEUNMODIFIEDOVERWRITE, m_Common.m_bEnableUnmodifiedOverwrite );
/* ファイルをドロップしたときは閉じて開く */
::CheckDlgButton( hwndDlg, IDC_CHECK_bDropFileAndClose, m_Common.m_bDropFileAndClose );
/* 一度にドロップ可能なファイル数 */
::SetDlgItemInt( hwndDlg, IDC_EDIT_nDropFileNumMax, m_Common.m_nDropFileNumMax, FALSE );
// From Here Aug. 21, 2000 genta
// 自動保存の有効?無効
::CheckDlgButton( hwndDlg, IDC_CHECK_AUTOSAVE, m_Common.IsAutoBackupEnabled() );
char buf[6];
int nN;
nN = m_Common.GetAutoBackupInterval();
nN = nN < 1 ? 1 : nN;
nN = nN > 35791 ? 35791 : nN;
wsprintf( buf, "%d", nN);
::SetDlgItemText( hwndDlg, IDC_EDIT_AUTOBACKUP_INTERVAL, buf );
// To Here Aug. 21, 2000 genta
// Oct. 27, 2000 genta カーソル位置復元フラグ
::CheckDlgButton( hwndDlg, IDC_CHECK_RestoreCurPosition, m_Common.GetRestoreCurPosition() );
// 2002.01.16 hor ブックマーク復元フラグ
::CheckDlgButton( hwndDlg, IDC_CHECK_RestoreBookmarks, m_Common.GetRestoreBookmarks() );
// Nov. 12, 2000 genta MIME Decodeフラグ
::CheckDlgButton( hwndDlg, IDC_CHECK_AutoMIMEDecode, m_Common.GetAutoMIMEdecode() );
// Oct. 03, 2004 genta 前回と異なる文字コードのときに問い合わせを行うかどうかのフラグ
::CheckDlgButton( hwndDlg, IDC_CHECK_QueryIfCodeChange, m_Common.GetQueryIfCodeChange() );
// Oct. 09, 2004 genta 開こうとしたファイルが存在しないとき警告するかどうかのフラグ
::CheckDlgButton( hwndDlg, IDC_CHECK_AlertIfFileNotExist, m_Common.GetAlertIfFileNotExist() );
EnableFilePropInput(hwndDlg);
return;
}
/*! ファイルページ ダイアログデータの取得
ダイアログボックスに設定されたデータを共有メモリに反映させる
@par バックアップ世代数が妥当な値かどうかのチェックも行う。不適切な値の時は
最も近い適切な値を設定する。
@param hwndDlg プロパティページのWindow Handle
@return 常にTRUE
*/
int CPropCommon::GetData_p2( HWND hwndDlg )
{
//@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
// m_nPageNum = ID_PAGENUM_FILE;
/* ファイルの排他制御モード */
if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_EXCVLUSIVE_NO ) ){ /* 排他なし */
m_Common.m_nFileShareMode = 0;
}else
if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_EXCVLUSIVE_WRITE ) ){ /* 書き込み禁止 */
m_Common.m_nFileShareMode = OF_SHARE_DENY_WRITE ;
}else
if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_EXCVLUSIVE_READWRITE ) ){ /* 読み書き禁止 */
m_Common.m_nFileShareMode = OF_SHARE_EXCLUSIVE;
}else{
/* 排他なし */
m_Common.m_nFileShareMode = 0;
}
/* 更新の監視 */
m_Common.m_bCheckFileTimeStamp = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_bCheckFileTimeStamp );
/* 無変更でも上書きするか */
m_Common.m_bEnableUnmodifiedOverwrite = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_ENABLEUNMODIFIEDOVERWRITE );
/* ファイルをドロップしたときは閉じて開く */
m_Common.m_bDropFileAndClose = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_bDropFileAndClose );
/* 一度にドロップ可能なファイル数 */
m_Common.m_nDropFileNumMax = ::GetDlgItemInt( hwndDlg, IDC_EDIT_nDropFileNumMax, NULL, FALSE );
if( 1 > m_Common.m_nDropFileNumMax ){
m_Common.m_nDropFileNumMax = 1;
}
if( 99 < m_Common.m_nDropFileNumMax ){ //Sept. 21, 2000, JEPRO 16より大きいときに99と制限されていたのを修正(16→99と変更)
m_Common.m_nDropFileNumMax = 99;
}
// From Here Aug. 16, 2000 genta
// 自動保存を行うかどうか
m_Common.EnableAutoBackup( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_AUTOSAVE ) == TRUE );
// 自動保存間隔の取得
char szNumBuf[/*6*/ 7]; //@@@ 2001.03.21 by MIK
int nN;
char *pDigit;
::GetDlgItemText( hwndDlg, IDC_EDIT_AUTOBACKUP_INTERVAL, szNumBuf, /*5*/ 6 ); //@@@ 2001.03.21 by MIK
for( nN = 0, pDigit = szNumBuf; *pDigit != '\0'; pDigit++ ){
if( '0' <= *pDigit && *pDigit <= '9' ){
nN = nN * 10 + *pDigit - '0';
}
else
break;
}
nN = nN < 1 ? 1 : nN;
nN = nN > 35791 ? 35791 : nN;
m_Common.SetAutoBackupInterval( nN );
// To Here Aug. 16, 2000 genta
// Oct. 27, 2000 genta カーソル位置復元フラグ
m_Common.SetRestoreCurPosition( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_RestoreCurPosition ) == TRUE );
// 2002.01.16 hor ブックマーク復元フラグ
m_Common.SetRestoreBookmarks( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_RestoreBookmarks ) == TRUE );
// Nov. 12, 2000 genta MIME Decodeフラグ
m_Common.SetAutoMIMEdecode( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_AutoMIMEDecode ) == TRUE );
// Oct. 03, 2004 genta 前回と異なる文字コードのときに問い合わせを行うかどうかのフラグ
m_Common.SetQueryIfCodeChange( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_QueryIfCodeChange ) == TRUE );
// Oct. 03, 2004 genta 前回と異なる文字コードのときに問い合わせを行うかどうかのフラグ
m_Common.SetAlertIfFileNotExist( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_AlertIfFileNotExist ) == TRUE );
return TRUE;
}
// From Here Aug. 21, 2000 genta
/*! チェック状態に応じてダイアログボックス要素のEnable/Disableを
適切に設定する
@param hwndDlg プロパティシートのWindow Handle
*/
void CPropCommon::EnableFilePropInput(HWND hwndDlg)
{
// Drop時の動作
if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_bDropFileAndClose ) ){
::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_AUTOSAVE3 ), FALSE ); // added Sept. 6, JEPRO 自動保存にしたときだけEnableになるように変更
::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_AUTOSAVE4 ), FALSE ); // added Sept. 6, JEPRO 同上
::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_nDropFileNumMax ), FALSE );
::EnableWindow( ::GetDlgItem( hwndDlg, IDC_SPIN_nDropFileNumMax ), FALSE );// added Oct. 6, JEPRO ファイルオープンを「閉じて開く」にしたときはDisableになるように変更
}else{
::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_AUTOSAVE3 ), TRUE ); // added Sept. 6, JEPRO 同上
::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_AUTOSAVE4 ), TRUE ); // added Sept. 6, JEPRO 同上
::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_nDropFileNumMax ), TRUE );
::EnableWindow( ::GetDlgItem( hwndDlg, IDC_SPIN_nDropFileNumMax ), TRUE );// added Oct. 6, JEPRO ファイルオープンを「複数ファイルドロップ」にしたときだけEnableになるように変更
}
// 排他するかどうか
if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_EXCVLUSIVE_NO ) ){
::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_bCheckFileTimeStamp ), TRUE );
}else{
::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_bCheckFileTimeStamp ), FALSE );
}
// 自動保存
if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_AUTOSAVE ) ){
::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_AUTOBACKUP_INTERVAL ), TRUE );
::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_AUTOSAVE ), TRUE );
::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_AUTOSAVE2 ), TRUE ); //Sept. 6, 2000 JEPRO 自動保存にしたときだけEnableになるように変更
::EnableWindow( ::GetDlgItem( hwndDlg, IDC_SPIN_AUTOBACKUP_INTERVAL ), TRUE ); //@@@ 2001.03.21 by MIK
}else{
::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_AUTOBACKUP_INTERVAL ), FALSE );
::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_AUTOSAVE ), FALSE );
::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_AUTOSAVE2 ), FALSE ); //Sept. 6, 2000 JEPRO 同上
::EnableWindow( ::GetDlgItem( hwndDlg, IDC_SPIN_AUTOBACKUP_INTERVAL ), FALSE ); //@@@ 2001.03.21 by MIK
}
}
// To Here Aug. 21, 2000 genta
/*[EOF]*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -