📄 cpropcomtoolbar.cpp
字号:
// }else{
// ::SendMessage( hwndFuncList, LB_ADDSTRING, 0, (LPARAM)"--未定義--" );
// }
}
return TRUE;
}
}else{
switch( wNotifyCode ){
/* ボタン/チェックボックスがクリックされた */
case BN_CLICKED:
switch( wID ){
case IDC_BUTTON_INSERTSEPARATOR:
nIndex1 = ::SendMessage( hwndResList, LB_GETCURSEL, 0, 0 );
if( LB_ERR == nIndex1 ){
// break;
nIndex1 = 0;
}
// From Here Apr. 13, 2002 genta
nIndex1 = ::Listbox_INSERTDATA( hwndResList, nIndex1, 0 );
if( nIndex1 == LB_ERR || nIndex1 == LB_ERRSPACE ){
break;
}
// To Here Apr. 13, 2002 genta
::SendMessage( hwndResList, LB_SETCURSEL, nIndex1, 0 );
break;
case IDC_BUTTON_DELETE:
nIndex1 = ::SendMessage( hwndResList, LB_GETCURSEL, 0, 0 );
if( LB_ERR == nIndex1 ){
break;
}
i = ::SendMessage( hwndResList, LB_DELETESTRING, nIndex1, 0 );
if( i == LB_ERR ){
break;
}
if( nIndex1 >= i ){
if( i == 0 ){
i = ::SendMessage( hwndResList, LB_SETCURSEL, 0, 0 );
}else{
i = ::SendMessage( hwndResList, LB_SETCURSEL, i - 1, 0 );
}
}else{
i = ::SendMessage( hwndResList, LB_SETCURSEL, nIndex1, 0 );
}
break;
case IDC_BUTTON_INSERT:
nIndex1 = ::SendMessage( hwndResList, LB_GETCURSEL, 0, 0 );
if( LB_ERR == nIndex1 ){
// break;
nIndex1 = 0;
}
nIndex2 = ::SendMessage( hwndFuncList, LB_GETCURSEL, 0, 0 );
if( LB_ERR == nIndex2 ){
break;
}
i = ::SendMessage( hwndFuncList, LB_GETITEMDATA, nIndex2, 0 );
// From Here Apr. 13, 2002 genta
nIndex1 = ::Listbox_INSERTDATA( hwndResList, nIndex1, i );
if( nIndex1 == LB_ERR || nIndex1 == LB_ERRSPACE ){
break;
}
// To Here Apr. 13, 2002 genta
::SendMessage( hwndResList, LB_SETCURSEL, nIndex1 + 1, 0 );
break;
case IDC_BUTTON_ADD:
nIndex1 = ::SendMessage( hwndResList, LB_GETCOUNT, 0, 0 );
nIndex2 = ::SendMessage( hwndFuncList, LB_GETCURSEL, 0, 0 );
if( LB_ERR == nIndex2 ){
break;
}
i = ::SendMessage( hwndFuncList, LB_GETITEMDATA, nIndex2, 0 );
// From Here Apr. 13, 2002 genta
// ここでは i != 0 だとは思うけど、一応保険です。
nIndex1 = ::Listbox_INSERTDATA( hwndResList, nIndex1, i );
if( nIndex1 == LB_ERR || nIndex1 == LB_ERRSPACE ){
::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, GSTR_APPNAME,
_T("Toolbar Dialog: 要素の追加に失敗しました。:%d"), nIndex1 );
break;
}
// To Here Apr. 13, 2002 genta
::SendMessage( hwndResList, LB_SETCURSEL, nIndex1, 0 );
break;
case IDC_BUTTON_UP:
nIndex1 = ::SendMessage( hwndResList, LB_GETCURSEL, 0, 0 );
if( LB_ERR == nIndex1 || 0 >= nIndex1 ){
break;
}
i = ::SendMessage( hwndResList, LB_GETITEMDATA, nIndex1, 0 );
j = ::SendMessage( hwndResList, LB_DELETESTRING, nIndex1, 0 );
if( j == LB_ERR ){
break;
}
// From Here Apr. 13, 2002 genta
nIndex1 = ::Listbox_INSERTDATA( hwndResList, nIndex1 - 1, i );
if( nIndex1 == LB_ERR || nIndex1 == LB_ERRSPACE ){
::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, GSTR_APPNAME,
_T("Toolbar Dialog: 要素の追加に失敗しました。:%d"), nIndex1 );
break;
}
// To Here Apr. 13, 2002 genta
::SendMessage( hwndResList, LB_SETCURSEL, nIndex1, 0 );
break;
case IDC_BUTTON_DOWN:
i = ::SendMessage( hwndResList, LB_GETCOUNT, 0, 0 );
nIndex1 = ::SendMessage( hwndResList, LB_GETCURSEL, 0, 0 );
if( LB_ERR == nIndex1 || nIndex1 + 1 >= i ){
break;
}
i = ::SendMessage( hwndResList, LB_GETITEMDATA, nIndex1, 0 );
j = ::SendMessage( hwndResList, LB_DELETESTRING, nIndex1, 0 );
if( j == LB_ERR ){
break;
}
// From Here Apr. 13, 2002 genta
nIndex1 = ::Listbox_INSERTDATA( hwndResList, nIndex1 + 1, i );
if( nIndex1 == LB_ERR || nIndex1 == LB_ERRSPACE ){
::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, GSTR_APPNAME,
_T("Toolbar Dialog: 要素の追加に失敗しました。:%d"), nIndex1 );
break;
}
::SendMessage( hwndResList, LB_SETCURSEL, nIndex1, 0 );
// To Here Apr. 13, 2002 genta
break;
}
break;
}
}
break;
case WM_TIMER:
nIndex1 = ::SendMessage( hwndResList, LB_GETCURSEL, 0, 0 );
nIndex2 = ::SendMessage( hwndFuncList, LB_GETCURSEL, 0, 0 );
i = ::SendMessage( hwndResList, LB_GETCOUNT, 0, 0 );
if( LB_ERR == nIndex1 ){
::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_DELETE ), FALSE );
::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_UP ), FALSE );
::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_DOWN ), FALSE );
}else{
::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_DELETE ), TRUE );
if( nIndex1 <= 0 ){
::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_UP ), FALSE );
}else{
::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_UP ), TRUE );
}
if( nIndex1 + 1 >= i ){
::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_DOWN ), FALSE );
}else{
::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_DOWN ), TRUE );
}
}
if( LB_ERR == nIndex1 || LB_ERR == nIndex2 ){
::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_INSERT ), FALSE );
}else{
::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_INSERT ), TRUE );
}
if( LB_ERR == nIndex2 ){
::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_ADD ), FALSE );
}else{
::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_ADD ), TRUE );
}
break;
case WM_DESTROY:
::KillTimer( hwndDlg, 1 );
break;
//@@@ 2001.02.04 Start by MIK: Popup Help
case WM_HELP:
{
HELPINFO *p = (HELPINFO *)lParam;
::WinHelp( (HWND)p->hItemHandle, m_szHelpFile, HELP_WM_HELP, (ULONG_PTR)(LPVOID)p_helpids );
}
return TRUE;
/*NOTREACHED*/
//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;
}
/* ダイアログデータの設定 p6 */
void CPropCommon::SetData_p6( HWND hwndDlg )
{
HWND hwndCombo;
HWND hwndResList;
HDC hdc;
int i;
int nListItemHeight;
LRESULT lResult;
TEXTMETRIC tm;
/* 機能種別一覧に文字列をセット(コンボボックス) */
hwndCombo = ::GetDlgItem( hwndDlg, IDC_COMBO_FUNCKIND );
m_cLookup.SetCategory2Combo( hwndCombo ); // Oct. 15, 2001 genta
// for( i = 0; i < nsFuncCode::nFuncKindNum; ++i ){
// ::SendMessage( hwndCombo, CB_ADDSTRING, 0, (LPARAM)nsFuncCode::ppszFuncKind[i] );
// }
/* 種別の先頭の項目を選択(コンボボックス) */
::SendMessage( hwndCombo, CB_SETCURSEL, (WPARAM)0, (LPARAM)0 ); //Oct. 14, 2000 JEPRO JEPRO 「--未定義--」を表示させないように大元 Funcode.cpp で変更してある
::PostMessage( hwndCombo, WM_COMMAND, MAKELONG( IDC_COMBO_FUNCKIND, CBN_SELCHANGE ), (LPARAM)hwndCombo );
/* コントロールのハンドルを取得 */
hwndResList = ::GetDlgItem( hwndDlg, IDC_LIST_RES );
hdc = ::GetDC( hwndDlg );
::GetTextMetrics( hdc, &tm );
::ReleaseDC( hwndDlg, hdc );
nListItemHeight = 18; //Oct. 18, 2000 JEPRO 「ツールバー」タブでのツールバーアイテムの行間を少し狭くして表示行数を増やした(20→18 これ以上小さくしても効果はないようだ)
if( nListItemHeight < tm.tmHeight ){
nListItemHeight = tm.tmHeight;
}
// nListItemHeight+=2;
/* ツールバーボタンの情報をセット(リストボックス)*/
for( i = 0; i < m_Common.m_nToolBarButtonNum; ++i ){
// From Here Apr. 13, 2002 genta
lResult = ::Listbox_ADDDATA( hwndResList, 0, (LPARAM)m_Common.m_nToolBarButtonIdxArr[i] );
if( lResult == LB_ERR || lResult == LB_ERRSPACE ){
break;
}
// To Here Apr. 13, 2002 genta
lResult = ::SendMessage( hwndResList, LB_SETITEMHEIGHT , lResult, (LPARAM)MAKELPARAM(nListItemHeight, 0) );
}
// /* ツールバーの先頭の項目を選択(リストボックス)*/
::SendMessage( hwndResList, LB_SETCURSEL, 0, 0 ); //Oct. 14, 2000 JEPRO ここをコメントアウトすると先頭項目が選択されなくなる
/* フラットツールバーにする/しない */
::CheckDlgButton( hwndDlg, IDC_CHECK_TOOLBARISFLAT, m_Common.m_bToolBarIsFlat );
return;
}
/* ダイアログデータの取得 p6 */
int CPropCommon::GetData_p6( HWND hwndDlg )
{
HWND hwndResList;
int i;
int j;
int k;
//@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
// m_nPageNum = ID_PAGENUM_TOOLBAR;
hwndResList = ::GetDlgItem( hwndDlg, IDC_LIST_RES );
/* ツールバーボタンの数 */
m_Common.m_nToolBarButtonNum = ::SendMessage( hwndResList, LB_GETCOUNT, 0, 0 );
/* ツールバーボタンの情報を取得 */
k = 0;
for( i = 0; i < m_Common.m_nToolBarButtonNum; ++i ){
j = ::SendMessage( hwndResList, LB_GETITEMDATA, i, 0 );
if( LB_ERR != j ){
m_Common.m_nToolBarButtonIdxArr[k] = j;
k++;
}
}
m_Common.m_nToolBarButtonNum = k;
/* フラットツールバーにする/しない */
m_Common.m_bToolBarIsFlat = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_TOOLBARISFLAT );
return TRUE;
}
/*[EOF]*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -