Vous pouvez essayer de déplacer le HideCaret()
Appelez après le DefSubclassProc()
, car pour le moment si un message déclenche le caret, ce ne sera pas avant le Suivant Message qu'il est à nouveau caché.
De plus, je suppose que le seul message qui déclenche le caret à afficher est WM_SETFOCUS
, vous voudrez peut-être tester uniquement ce message. Par exemple,
LRESULT CALLBACK UserInfoProc (HWND hUserInfoWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, UINT_PTR uIdSubclass, DWORD_PTR dwRefData)
{
LRESULT lRes = DefSubclassProc(hUserInfoWnd, uMsg, wParam, lParam);
if (uMsg == WM_SETFOCUS) // maybe?
HideCaret(hUserInfoWnd);
return lRes;
}