| | |
| | | m_nMagneticLinHoz = 0; |
| | | m_nMagneticLinVer = 0; |
| | | m_hFontTitle = nullptr; |
| | | m_nIndicatorSize = 10; |
| | | m_nIndicatorMargin = 3; |
| | | |
| | | } |
| | | |
| | |
| | | |
| | | m_crItemIdText[0] = CColorTransfer::ApproximateColor(m_crItemNameText[0], -0.3f); |
| | | m_crItemIdText[1] = CColorTransfer::ApproximateColor(m_crItemNameText[1], -0.3f); |
| | | } |
| | | |
| | | void CEqsGraphWnd::SetIndicatorSize(int nSize) |
| | | { |
| | | if (nSize > 0) { |
| | | m_nIndicatorSize = nSize; |
| | | } |
| | | } |
| | | |
| | | void CEqsGraphWnd::SetIndicatorMargin(int nMargin) |
| | | { |
| | | if (nMargin >= 0) { |
| | | m_nIndicatorMargin = nMargin; |
| | | } |
| | | } |
| | | |
| | | void CEqsGraphWnd::EnableScroll(BOOL bEnable) |
| | |
| | | ::DrawText(hMemDC, pItem->text, (int)strlen(pItem->text), &rcItem, |
| | | DT_CENTER | DT_VCENTER | DT_SINGLELINE | DT_END_ELLIPSIS); |
| | | |
| | | // 多个指示灯:左上角,按 4 列 × 2 行排列 |
| | | const int indicatorSize = 10; |
| | | const int indicatorMargin = 3; |
| | | const int indicatorsPerRow = 4; |
| | | // indicators vertical column layout |
| | | const int indicatorSize = m_nIndicatorSize; |
| | | const int indicatorMargin = m_nIndicatorMargin; |
| | | const int indicatorX = rcItem.left + 5; |
| | | |
| | | for (int k = 0; k < EQITEM_INDICATOR_COUNT; ++k) { |
| | | BYTE indicatorState = pItem->nIndicatorState[k]; |
| | |
| | | continue; |
| | | } |
| | | |
| | | int row = k / indicatorsPerRow; |
| | | int col = k % indicatorsPerRow; |
| | | |
| | | RECT rcIndicator; |
| | | rcIndicator.left = rcItem.left + 5 + col * (indicatorSize + indicatorMargin); |
| | | rcIndicator.top = rcItem.top + 5 + row * (indicatorSize + indicatorMargin); |
| | | rcIndicator.left = indicatorX; |
| | | rcIndicator.top = rcItem.top + 5 + k * (indicatorSize + indicatorMargin); |
| | | rcIndicator.right = rcIndicator.left + indicatorSize; |
| | | rcIndicator.bottom = rcIndicator.top + indicatorSize; |
| | | |
| | | |
| | | // 画高亮/灰色方块 |
| | | RECT rcInner = rcIndicator; |
| | | ::InflateRect(&rcInner, -1, -1); |
| | | ::FillRect(hMemDC, &rcInner, indicatorState == INDICATOR_STATE_HIGHLIGHT |