Potresti provare a spostare il HideCaret()
chiamare dopo il DefSubclassProc()
, poiché al momento se un messaggio innesca il custode non sarà fino al prossimo messaggio che è di nuovo nascosto.
Inoltre, immagino che l'unico messaggio che innesca il pugno da mostrare è WM_SETFOCUS
, quindi potresti voler testare solo quel messaggio. Per esempio,
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;
}