SetMarquee函数不适用于C ++中的多字节字符集

时间:2019-02-28 07:25:36

标签: visual-c++ visual-studio-2013 visual-c++-2013

我在项目中使用多字节字符集。

字符集为多字节时,不允许访问SetMarquee函数。

C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ VC \ atlmfc \ include \ afxcmn2.inl 中可用的以下功能

#if defined(UNICODE)
_AFXCMN_INLINE BOOL CProgressCtrl::SetMarquee(_In_ BOOL fMarqueeMode, _In_ int nInterval)
{ ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, PBM_SETMARQUEE, (WPARAM)fMarqueeMode, (LPARAM)nInterval); }
#endif  // defined(UNICODE)

我正在尝试在代码上使用以下SendMessage函数作为字幕样式。但它不起作用。

::SendMessage(m_hWnd, PBM_SETMARQUEE, (WPARAM)TRUE, (LPARAM)1);

在这个问题上,你能帮我吗?

谢谢! Vijay Kumbhani

1 个答案:

答案 0 :(得分:0)

找到答案。

我需要创建CProgressCtrl的类对象

CProgressCtrl progressCtrl;
LRESULT lResult = ::SendMessage(progressCtrl, PBM_SETMARQUEE, (WPARAM)TRUE, (LPARAM)1);

您需要将 Progress Ctrl 对象作为HANDLE传递给SendMessage函数。