В моей программе Win32 CPP я определил некоторые дочерние окна, чтобы отобразить различные текстовые строки, используя что-то вроде:Win32: C++: Как переориентироваться на родительское окно после нажатия дочернего окна?
hnd_to_this_ch_window = CreateWindow(
L"EDIT",L"Some initial text", WS_VISIBLE | WS_CHILD | ES_LEFT,
position_of_this_window_X,
position_of_this_window_Y,
TEXTOUT_DEFAULT_WIDTH,
TEXTOUT_DEFAULT_HEIGHT,
handle_to_my_parent_window, NULL,
hinstance_variable_used_by_create_window,
NULL)
Моя проблема заключается в том, что если я нажимаю с моей мыши, чтобы выбрать текст в одной из таких дочерних окон (скажем, скопируйте его где-нибудь), фокус приложения переходит в это дочернее окно, и поэтому любые нажатия клавиш, которые раньше обрабатывались через мои главные окна CALLBACK (в случае WM_KEYDOWN :) теперь записываются в дочернее окно, где они отображаются как введенные символы. Какую магическую функцию я вызываю, чтобы фокус возвращался к родительскому объекту (так что мой WM_KEYDOWN) может работать снова? Я надеялся, что могу просто нажать на заголовок главного окна, и это вернет его к нормальной работе, но это не работает (потому что, очевидно, в моей программе не хватает дополнительной логики).
Это звучит как главное окно не называет 'SetFocus', когда он получает щелчок мыши. –