📄 cpropcomcustmenu.cpp
字号:
::SendMessage( hwndLIST_RES, LB_INSERTSTRING, nIdx2, (LPARAM)szLabel2 );
::SendMessage( hwndLIST_RES, LB_DELETESTRING, nIdx2 + 1, 0 );
//// sprintf( szLabel2, "%c %s", m_Common.m_nCustMenuItemKeyArr[nIdx1][nCaretPos], szLabel );
// ::SendMessage( hwndLIST_RES, LBN_SELCHANGE, MAKELONG( IDC_LIST_RES, 0 ), (LPARAM)hwndLIST_RES );
break;
case LBN_SELCHANGE:
nIdx1 = ::SendMessage( hwndCOMBO_MENU, CB_GETCURSEL, 0, 0 );
if( LB_ERR == nIdx1 ){
// ::SetWindowText( hwndEDIT_KEY, "" );
break;
}
if( MAX_CUSTOM_MENU_ITEMS <= m_Common.m_nCustMenuItemNumArr[nIdx1] ){
// ::SetWindowText( hwndEDIT_KEY, "" );
break;
}
nIdx2 = ::SendMessage( hwndLIST_RES, LB_GETCURSEL, 0, 0 );
if( LB_ERR == nIdx2 ){
// ::SetWindowText( hwndEDIT_KEY, "" );
break;
}
/* キー */
if( '\0' == m_Common.m_nCustMenuItemKeyArr[nIdx1][nIdx2] ||
' ' == m_Common.m_nCustMenuItemKeyArr[nIdx1][nIdx2] ){
// strcpy( szKey, "" );
}else{
// sprintf( szKey, "%c", m_Common.m_nCustMenuItemKeyArr[nIdx1][nIdx2] );
}
// ::SetWindowText( hwndEDIT_KEY, szKey );
break; /* LBN_SELCHANGE */
}
}else
if( hwndCOMBO_FUNCKIND == hwndCtl ){
switch( wNotifyCode ){
case CBN_SELCHANGE:
nIdx1 = ::SendMessage( hwndCOMBO_MENU, LB_GETCURSEL, 0, 0 );
nIdx2 = ::SendMessage( hwndLIST_RES, CB_GETCURSEL, 0, 0 );
nIdx3 = ::SendMessage( hwndCOMBO_FUNCKIND, CB_GETCURSEL, 0, 0 );
nIdx4 = ::SendMessage( hwndLIST_FUNC, CB_GETCURSEL, 0, 0 );
/* 機能一覧に文字列をセット(リストボックス)*/
// Oct. 14, 2000 jepro note: ここのforブロックで実際にリストを書いているようである
// Oct. 3, 2001 genta
// 専用ルーチンに置き換え
m_cLookup.SetListItem( hwndLIST_FUNC, nIdx3 );
#if 0
::SendMessage( hwndLIST_FUNC, LB_RESETCONTENT, 0, 0 );
for( i = 0; i < nsFuncCode::pnFuncListNumArr[nIdx3]; ++i ){
if( 0 < ::LoadString( m_hInstance, (nsFuncCode::ppnFuncListArr[nIdx3])[i], szLabel, 255 ) ){
::SendMessage( hwndLIST_FUNC, LB_ADDSTRING, 0, (LPARAM)szLabel );
}else{
::SendMessage( hwndLIST_FUNC, LB_ADDSTRING, 0, (LPARAM)"--未定義--" );
}
}
#endif
i = 0;
// if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_SHIFT ) ){
// i |= _SHIFT;
// }
// if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_CTRL ) ){
// i |= _CTRL;
// }
// if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_ALT ) ){
// i |= _ALT;
// }
// nFuncCode = m_pKeyNameArr[nIndex].m_nFuncCodeArr[i];
// for( i = 0; i < nFincListNumArrNum; ++i ){
// if( -1 != ( nIndex3 = SearchIntArr( nFuncCode, (int*)(nsFuncCode::ppnFuncListArr[i]), nsFuncCode::pnFuncListNumArr[i] ) ) ){
// if( nIndex2 == i ){
// ::SendMessage( hwndFuncList, LB_SETCURSEL, (WPARAM)nIndex3, (LPARAM)0 );
// }
// }
// }
return TRUE;
}
}else{
switch( wNotifyCode ){
/* ボタン/チェックボックスがクリックされた */
case BN_CLICKED:
switch( wID ){
case IDC_BUTTON_INSERTSEPARATOR:
nIdx1 = ::SendMessage( hwndCOMBO_MENU, CB_GETCURSEL, 0, 0 );
if( LB_ERR == nIdx1 ){
break;
}
if( MAX_CUSTOM_MENU_ITEMS <= m_Common.m_nCustMenuItemNumArr[nIdx1] ){
break;
}
nIdx2 = ::SendMessage( hwndLIST_RES, LB_GETCURSEL, 0, 0 );
if( LB_ERR == nIdx2 ){
nIdx2 = 0;
}
// nIdx2 = ::SendMessage( hwndLIST_RES, LB_INSERTSTRING, nIdx2, (LPARAM)"セパレータ" ); //Oct. 8, 2000 jepro 「ツールバー」タブ内のセパレータボタンで入る文字列
// nIdx2 = ::SendMessage( hwndLIST_RES, LB_INSERTSTRING, nIdx2, (LPARAM)"--------------------------------" );
nIdx2 = ::SendMessage( hwndLIST_RES, LB_INSERTSTRING, nIdx2, (LPARAM)" ─────────────" ); //Oct. 18, 2000 JEPRO 「ツールバー」タブで使っているセパレータと同じ線種に統一した
if( nIdx2 == LB_ERR || nIdx2 == LB_ERRSPACE ){
break;
}
::SendMessage( hwndLIST_RES, LB_SETCURSEL, nIdx2, 0 );
for( i = m_Common.m_nCustMenuItemNumArr[nIdx1]; i > nIdx2; i--){
m_Common.m_nCustMenuItemFuncArr[nIdx1][i] = m_Common.m_nCustMenuItemFuncArr[nIdx1][i - 1];
m_Common.m_nCustMenuItemKeyArr[nIdx1][i] = m_Common.m_nCustMenuItemKeyArr[nIdx1][i - 1];
}
m_Common.m_nCustMenuItemFuncArr[nIdx1][nIdx2] = 0;
m_Common.m_nCustMenuItemKeyArr[nIdx1][nIdx2] = '\0';
m_Common.m_nCustMenuItemNumArr[nIdx1]++;
// ::SetWindowText( hwndEDIT_KEY, "" );
break;
case IDC_BUTTON_DELETE:
nIdx1 = ::SendMessage( hwndCOMBO_MENU, CB_GETCURSEL, 0, 0 );
if( LB_ERR == nIdx1 ){
break;
}
if( 0 == m_Common.m_nCustMenuItemNumArr[nIdx1] ){
break;
}
nIdx2 = ::SendMessage( hwndLIST_RES, LB_GETCURSEL, 0, 0 );
if( LB_ERR == nIdx2 ){
break;
}
nNum2 = ::SendMessage( hwndLIST_RES, LB_DELETESTRING, nIdx2, 0 );
if( nNum2 == LB_ERR ){
break;
}
for( i = nIdx2; i < m_Common.m_nCustMenuItemNumArr[nIdx1]; ++i ){
m_Common.m_nCustMenuItemFuncArr[nIdx1][i] = m_Common.m_nCustMenuItemFuncArr[nIdx1][i + 1];
m_Common.m_nCustMenuItemKeyArr[nIdx1][i] = m_Common.m_nCustMenuItemKeyArr[nIdx1][i + 1];
}
m_Common.m_nCustMenuItemNumArr[nIdx1]--;
if( nNum2 > 0 ){
if( nNum2 <= nIdx2 ){
nIdx2 = nNum2 - 1;
}
nIdx2 = ::SendMessage( hwndLIST_RES, LB_SETCURSEL, nIdx2, 0 );
// sprintf( szKey, "%c", m_Common.m_nCustMenuItemKeyArr[nIdx1][nIdx2] );
// ::SetWindowText( hwndEDIT_KEY, szKey );
}else{
// ::SetWindowText( hwndEDIT_KEY, "" );
}
break;
case IDC_BUTTON_INSERT:
nIdx1 = ::SendMessage( hwndCOMBO_MENU, CB_GETCURSEL, 0, 0 );
if( LB_ERR == nIdx1 ){
break;
}
if( MAX_CUSTOM_MENU_ITEMS <= m_Common.m_nCustMenuItemNumArr[nIdx1] ){
break;
}
nIdx2 = ::SendMessage( hwndLIST_RES, LB_GETCURSEL, 0, 0 );
if( LB_ERR == nIdx2 ){
nIdx2 = 0;
}
nIdx3 = ::SendMessage( hwndCOMBO_FUNCKIND, CB_GETCURSEL, 0, 0 );
if( LB_ERR == nIdx3 ){
break;
}
nIdx4 = ::SendMessage( hwndLIST_FUNC, LB_GETCURSEL, 0, 0 );
if( LB_ERR == nIdx4 ){
break;
}
::SendMessage( hwndLIST_FUNC, LB_GETTEXT, nIdx4, (LPARAM)szLabel );
for( i = m_Common.m_nCustMenuItemNumArr[nIdx1]; i > nIdx2; i-- ){
m_Common.m_nCustMenuItemFuncArr[nIdx1][i] = m_Common.m_nCustMenuItemFuncArr[nIdx1][i - 1];
m_Common.m_nCustMenuItemKeyArr[nIdx1][i] = m_Common.m_nCustMenuItemKeyArr[nIdx1][i - 1];
}
// Oct. 3, 2001 genta
m_Common.m_nCustMenuItemFuncArr[nIdx1][nIdx2] = m_cLookup.Pos2FuncCode( nIdx3, nIdx4 );
// m_Common.m_nCustMenuItemFuncArr[nIdx1][nIdx2] = nsFuncCode::ppnFuncListArr[nIdx3][nIdx4];
m_Common.m_nCustMenuItemKeyArr[nIdx1][nIdx2] = '\0';
m_Common.m_nCustMenuItemNumArr[nIdx1]++;
nIdx2 = ::SendMessage( hwndLIST_RES, LB_INSERTSTRING, nIdx2, (LPARAM)szLabel );
if( LB_ERR == nIdx2 || LB_ERRSPACE == nIdx2 ){
break;
}
::SendMessage( hwndLIST_RES, LB_SETCURSEL, nIdx2, 0 );
// sprintf( szKey, "%c", m_Common.m_nCustMenuItemKeyArr[nIdx1][nIdx2] );
// ::SetWindowText( hwndEDIT_KEY, szKey );
break;
case IDC_BUTTON_ADD:
nIdx1 = ::SendMessage( hwndCOMBO_MENU, CB_GETCURSEL, 0, 0 );
if( LB_ERR == nIdx1 ){
break;
}
if( MAX_CUSTOM_MENU_ITEMS <= m_Common.m_nCustMenuItemNumArr[nIdx1] ){
break;
}
nIdx2 = ::SendMessage( hwndLIST_RES, LB_GETCURSEL, 0, 0 );
if( LB_ERR == nIdx2 ){
nIdx2 = 0;
}
nNum2 = ::SendMessage( hwndLIST_RES, LB_GETCOUNT, 0, 0 );
if( LB_ERR == nNum2 ){
nIdx2 = 0;
}
nIdx3 = ::SendMessage( hwndCOMBO_FUNCKIND, CB_GETCURSEL, 0, 0 );
if( LB_ERR == nIdx3 ){
break;
}
nIdx4 = ::SendMessage( hwndLIST_FUNC, LB_GETCURSEL, 0, 0 );
if( LB_ERR == nIdx4 ){
break;
}
// Oct. 3, 2001 genta
if( m_cLookup.Pos2FuncCode( nIdx3, nIdx4 ) == 0 )
break;
// if( 0 == nsFuncCode::ppnFuncListArr[nIdx3][nIdx4] ){
// break;
// }
::SendMessage( hwndLIST_FUNC, LB_GETTEXT, nIdx4, (LPARAM)szLabel );
// Oct. 3, 2001 genta
m_Common.m_nCustMenuItemFuncArr[nIdx1][nNum2] = m_cLookup.Pos2FuncCode( nIdx3, nIdx4 );
// m_Common.m_nCustMenuItemFuncArr[nIdx1][nNum2] = nsFuncCode::ppnFuncListArr[nIdx3][nIdx4];
m_Common.m_nCustMenuItemKeyArr[nIdx1][nNum2] = '\0';
m_Common.m_nCustMenuItemNumArr[nIdx1]++;
nIdx2 = ::SendMessage( hwndLIST_RES, LB_ADDSTRING, nIdx2, (LPARAM)szLabel );
if( LB_ERR == nIdx2 || LB_ERRSPACE == nIdx2 ){
break;
}
::SendMessage( hwndLIST_RES, LB_SETCURSEL, nIdx2, 0 );
// sprintf( szKey, "%c", m_Common.m_nCustMenuItemKeyArr[nIdx1][nIdx2] );
// ::SetWindowText( hwndEDIT_KEY, szKey );
break;
case IDC_BUTTON_UP:
nIdx1 = ::SendMessage( hwndCOMBO_MENU, CB_GETCURSEL, 0, 0 );
if( LB_ERR == nIdx1 ){
break;
}
nIdx2 = ::SendMessage( hwndLIST_RES, LB_GETCURSEL, 0, 0 );
if( LB_ERR == nIdx2 ){
break;
}
if( 0 == nIdx2 ){
break;
}
nFunc = m_Common.m_nCustMenuItemFuncArr[nIdx1][nIdx2 - 1];
cKey = m_Common.m_nCustMenuItemKeyArr[nIdx1][nIdx2 - 1];
m_Common.m_nCustMenuItemFuncArr[nIdx1][nIdx2 - 1] = m_Common.m_nCustMenuItemFuncArr[nIdx1][nIdx2];
m_Common.m_nCustMenuItemKeyArr[nIdx1][nIdx2 - 1] = m_Common.m_nCustMenuItemKeyArr[nIdx1][nIdx2];
m_Common.m_nCustMenuItemFuncArr[nIdx1][nIdx2] = nFunc;
m_Common.m_nCustMenuItemKeyArr[nIdx1][nIdx2] = cKey;
::SendMessage( hwndLIST_RES, LB_GETTEXT, nIdx2, (LPARAM)szLabel );
::SendMessage( hwndLIST_RES, LB_DELETESTRING, nIdx2, 0 );
::SendMessage( hwndLIST_RES, LB_INSERTSTRING, nIdx2 - 1, (LPARAM)szLabel );
::SendMessage( hwndLIST_RES, LB_SETCURSEL, nIdx2 - 1, 0 );
break;
case IDC_BUTTON_DOWN:
nIdx1 = ::SendMessage( hwndCOMBO_MENU, CB_GETCURSEL, 0, 0 );
if( LB_ERR == nIdx1 ){
break;
}
nIdx2 = ::SendMessage( hwndLIST_RES, LB_GETCURSEL, 0, 0 );
if( LB_ERR == nIdx2 ){
break;
}
nNum2 = ::SendMessage( hwndLIST_RES, LB_GETCOUNT, 0, 0 );
if( LB_ERR == nNum2 ){
break;
}
if( nNum2 - 1 <= nIdx2 ){
break;
}
nFunc = m_Common.m_nCustMenuItemFuncArr[nIdx1][nIdx2 + 1];
cKey = m_Common.m_nCustMenuItemKeyArr[nIdx1][nIdx2 + 1];
m_Common.m_nCustMenuItemFuncArr[nIdx1][nIdx2 + 1] = m_Common.m_nCustMenuItemFuncArr[nIdx1][nIdx2];
m_Common.m_nCustMenuItemKeyArr[nIdx1][nIdx2 + 1] = m_Common.m_nCustMenuItemKeyArr[nIdx1][nIdx2];
m_Common.m_nCustMenuItemFuncArr[nIdx1][nIdx2] = nFunc;
m_Common.m_nCustMenuItemKeyArr[nIdx1][nIdx2] = cKey;
::SendMessage( hwndLIST_RES, LB_GETTEXT, nIdx2, (LPARAM)szLabel );
::SendMessage( hwndLIST_RES, LB_DELETESTRING, nIdx2, 0 );
::SendMessage( hwndLIST_RES, LB_INSERTSTRING, nIdx2 + 1, (LPARAM)szLabel );
::SendMessage( hwndLIST_RES, LB_SETCURSEL, nIdx2 + 1, 0 );
break;
}
break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -