У меня есть родительское окно и несколько дочерних окон, связанных с этим. С SpyXX я могу видеть, что у всех детей есть определенный стиль, скажем ChildWindowClass
.Невозможно создать окно (CreateWindowEx) с существующим дочерним классом
Когда я создаю окно с именем этого конкретного класса, CreateWindowEx
возвращает дескриптор NULL
. Если я использую свой собственный класс и просто устанавливаю родительский элемент, окно является дочерним окном, но, конечно же, имеет другой класс, как и все остальные дети.
Если я получу стиль и затем установил его, стиль будет найден, но не установлен для моего дочернего окна. Он по-прежнему показывает стиль, используемый с CreateWindowEx
HWND firstChild = FindWindowEx(MyClass::_parent, NULL, szFsxChildWindowClass, NULL);
LONG childStyle = GetWindowLong(firstChild, GWL_STYLE);
...
SetWindowLong(MyClass::_child,GWL_STYLE, childStyle);
ChildWindowClass
не зарегистрирован мной, поэтому я не могу перепроверить, как он зарегистрирован. Итак, как я могу установить этот стиль для моего дочернего окна?
- Редактирование вызова по требованию -
child = CreateWindowEx(WS_EX_LEFT | WS_EX_LTRREADING | WS_EX_RIGHTSCROLLBAR,
szWindowClass, // this is where I want to place the name of the child class
_T("Test"),
WS_CHILDWINDOW | WS_VISIBLE,
x,y, // 0,0
w, h, // 500,100
MyClass::_parent, // parent
NULL,
MyClass::_hInstance, // must this be 0??
NULL
);
Вы должны показать нам свой вызов CreateWindowEx. –
Кроме того, просто убедитесь, что класс окон, который вы хотите использовать, зарегистрирован в вашем пространстве процесса? – nielsj
Тот же процесс, тот же поток! –