Собственно создаю окошко и хочу чтобы мой класс обрабатывал сообщения:
if (msg == WM_CREATE)
{
CREATESTRUCT *p_create_ctruct = (CREATESTRUCT*)lp;
CMyWndClass *p_wnd = (CMyWndClass*)p_create_ctruct->lpCreateParams;
SetWindowLongPtr(hwnd, GWLP_USERDATA, (LONG_PTR)p_wnd);
return p_wnd->on_create(p_create_ctruct);
}
if (CMyWndClass *p_wnd = (CMyWndClass*)GetWindowLongPtr(hwnd, GWLP_USERDATA))
{
return p_wnd->on_window_message(msg, wp, lp);
}
return DefWindowProc(hwnd, msg, wp, lp);
меня интересует насколько сильно это отразится на производительности? получается что для каждого сообщения дёргается GetWindowLongPtr. я глянул на код этой апишки — системные вызовы она, вроде, не дёргает, т.е. работать должна довольно быстро. да и окошко — не заметно чтоб притормаживала отрисовка. но всё же, насколько такой способ приемлем и есть ли более разумные варианты?