Функция SetMarquee не работает с набором символов MultiByte в C ++ - PullRequest
0 голосов
/ 28 февраля 2019

Я использую многобайтовый набор символов в моем проекте.

Функция 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);

Не могли бы вы помочь мне в этом вопросе.

Спасибо!Виджай Кумбхани

1 Ответ

0 голосов
/ 28 февраля 2019

Найден ответ.

Мне нужно создать объект класса CProgressCtrl

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

Вам необходимо передать Выполните Ctrl объект как HANDLE в функции SendMessage.

...