Opakowując winapi w klasy doszedłem do problemu z pętlami komunikatów - w konstruktorze klasy c_window podaje
temp.lpfnWndProc = static_window_proc;
statyczną metodę w której to aby mieć dostęp do zmiennych w klasie które statyczne nie są przechodzę w taki sposób
LRESULT CALLBACK c_window::static_window_proc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam )
{
if (msg == WM_CREATE) {
SetWindowLong(hwnd, GWL_USERDATA, lParam);
}
c_window* my_window = (c_window *) GetWindowLong(hwnd, GWL_USERDATA);
if (my_window)
return my_window->window_proc(hwnd, msg, wParam, lParam);
return DefWindowProc(hwnd, msg, wParam, lParam);
}
do niestatycznej metody procedury okna i to załatwia problem z dostępem do zmiennych w klasie a teraz moje pytanie :: w jaki sposób w tej metodzie uzyskać dostęp do konkretnego obiektu jakiejś klasy np c_edit, c_button ?
Gdy np chce w procedurze jakiegoś okna ustawić....
case WM_KEYDOWN:
if ( wParam == VK_TAB ) {
main_edit->set_focus(); // jak uzyskać dostęp do obiektu main_edit który jest utworzony w funkcji WinMain
}