我在我的项目中使用多字节字符集。
当字符集为MultiByte时,不允许访问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函数作为Marquee样式。但它不起作用。
::SendMessage(m_hWnd, PBM_SETMARQUEE, (WPARAM)TRUE, (LPARAM)1);
你能帮我解决这个问题。
谢谢! Vijay Kumbhani
找到了答案。
我需要创建一个CProgressCtrl的类对象
CProgressCtrl progressCtrl;
LRESULT lResult = ::SendMessage(progressCtrl, PBM_SETMARQUEE, (WPARAM)TRUE, (LPARAM)1);
您需要在ProgressMessage函数上将Progress Ctrl对象作为HANDLE传递。