MPC-HC (Media Player Classic Home Cinema) 的默认鼠标指针问题严重困扰着我,在没有换操作系统时就一直仍然在用很老的 MPC 6.4。但现在系统已经都换到 Win 7 及 Win 8.1 的 64 位操作系统了,播放器是时候该换了。
结合 MPC-HC 官网上有人提交的一个 bug,我对 MPC-HC 的源代码进行了一些搜索和修改,最后搞定了一共 4 处需要修改的默认鼠标指针设置,接下来上图。
这是官方原版的鼠标指针样式,视频画面上是箭头,底下控制部分都是手形鼠标指针:

这是修改后版本的鼠标指针样式,和 MPC 一致,画面上是手形鼠标指针,底下控制部分都是箭头:

这是修改后版本的关于对话框,1.7.8-arrow 版:

修改版本的下载地址如下:
新浪微盘: MPC-HC.1.7.8-arrow.x86.zip (32 位)
新浪微盘: MPC-HC.1.7.8-arrow.x64.zip (64 位)
Dropbox: MPC-HC.1.7.8-arrow.x86.zip (32 位)
Dropbox: MPC-HC.1.7.8-arrow.x64.zip (64 位)
修改的细节如下,其中就涉及到视频画面上鼠标指针修改的 MouseTouch.cpp 中的这个位置最难找:
结合 MPC-HC 官网上有人提交的一个 bug,我对 MPC-HC 的源代码进行了一些搜索和修改,最后搞定了一共 4 处需要修改的默认鼠标指针设置,接下来上图。
这是官方原版的鼠标指针样式,视频画面上是箭头,底下控制部分都是手形鼠标指针:
这是修改后版本的鼠标指针样式,和 MPC 一致,画面上是手形鼠标指针,底下控制部分都是箭头:
这是修改后版本的关于对话框,1.7.8-arrow 版:
修改版本的下载地址如下:
新浪微盘: MPC-HC.1.7.8-arrow.x86.zip (32 位)
新浪微盘: MPC-HC.1.7.8-arrow.x64.zip (64 位)
Dropbox: MPC-HC.1.7.8-arrow.x86.zip (32 位)
Dropbox: MPC-HC.1.7.8-arrow.x64.zip (64 位)
修改的细节如下,其中就涉及到视频画面上鼠标指针修改的 MouseTouch.cpp 中的这个位置最难找:
- deab46f52abe74b76317dadb7db5d8db3d7b1248
- src/mpc-hc/MouseTouch.cpp | 2 +-
- src/mpc-hc/PlayerSeekBar.cpp | 2 +-
- src/mpc-hc/PlayerToolBar.cpp | 2 +-
- src/mpc-hc/VolumeCtrl.cpp | 2 +-
- 4 files changed, 4 insertions(+), 4 deletions(-)
- diff --git a/src/mpc-hc/MouseTouch.cpp b/src/mpc-hc/MouseTouch.cpp
- index 0162ec5..9fd0b93 100644
- --- a/src/mpc-hc/MouseTouch.cpp
- +++ b/src/mpc-hc/MouseTouch.cpp
- @@ -433,7 +433,7 @@ bool CMouse::SelectCursor(const CPoint& screenPoint, const CPoint& clientPoint,
- }
- if (!bHidden || bHiddenAndMoved || !bCanHide) {
- - m_cursor = Cursor::ARROW;
- + m_cursor = Cursor::HAND;
- if (bCanHide) {
- if (!m_bMouseHiderStarted || screenPoint != m_mouseHiderStartScreenPoint) {
- StartMouseHider(screenPoint);
- diff --git a/src/mpc-hc/PlayerSeekBar.cpp b/src/mpc-hc/PlayerSeekBar.cpp
- index 9a57246..86ac612 100644
- --- a/src/mpc-hc/PlayerSeekBar.cpp
- +++ b/src/mpc-hc/PlayerSeekBar.cpp
- @@ -39,7 +39,7 @@ CPlayerSeekBar::CPlayerSeekBar(CMainFrame* pMainFrame)
- , m_bHasDuration(false)
- , m_rtHoverPos(0)
- , m_bHovered(false)
- - , m_cursor(AfxGetApp()->LoadStandardCursor(IDC_HAND))
- + , m_cursor(AfxGetApp()->LoadStandardCursor(IDC_ARROW))
- , m_bDraggingThumb(false)
- , m_tooltipState(TOOLTIP_HIDDEN)
- , m_bIgnoreLastTooltipPoint(true)
- diff --git a/src/mpc-hc/PlayerToolBar.cpp b/src/mpc-hc/PlayerToolBar.cpp
- index 9dfa476..586049b 100644
- --- a/src/mpc-hc/PlayerToolBar.cpp
- +++ b/src/mpc-hc/PlayerToolBar.cpp
- @@ -332,7 +332,7 @@ BOOL CPlayerToolBar::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
- int i = getHitButtonIdx(point);
- if (i >= 0 && !(GetButtonStyle(i) & (TBBS_SEPARATOR | TBBS_DISABLED))) {
- - ::SetCursor(AfxGetApp()->LoadStandardCursor(IDC_HAND));
- + ::SetCursor(AfxGetApp()->LoadStandardCursor(IDC_ARROW));
- ret = TRUE;
- }
- }
- diff --git a/src/mpc-hc/VolumeCtrl.cpp b/src/mpc-hc/VolumeCtrl.cpp
- index bd41188..592f4c8 100644
- --- a/src/mpc-hc/VolumeCtrl.cpp
- +++ b/src/mpc-hc/VolumeCtrl.cpp
- @@ -194,7 +194,7 @@ void CVolumeCtrl::HScroll(UINT nSBCode, UINT nPos)
- BOOL CVolumeCtrl::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
- {
- - ::SetCursor(AfxGetApp()->LoadStandardCursor(IDC_HAND));
- + ::SetCursor(AfxGetApp()->LoadStandardCursor(IDC_ARROW));
- return TRUE;
- }