Для этого я использую эти методы. Это работает нормально, когда я перемещаю родительское окно, дочернее окно возвращается в правильное положение.
Если я перемещаю дочернее окно, оно имеет такое смещение и не вписывается правильно в родительское.
р>
Код: Выделить всё
void ChangeWindowToPopup(HWND hwnd) {
LONG style = GetWindowLong(hwnd, GWL_STYLE);
style &= ~WS_CHILD;
style |= WS_OVERLAPPEDWINDOW;
style &= ~WS_MAXIMIZEBOX;
// Apply the new style
SetWindowLong(hwnd, GWL_STYLE, style);
SetParent(hwnd, NULL);
}
void RevertToChildWindow(HWND hwnd, HWND parent) {
LONG style = GetWindowLong(hwnd, GWL_STYLE);
style &= ~WS_OVERLAPPEDWINDOW;
style |= WS_CHILD;
SetWindowLong(hwnd, GWL_STYLE, style);
SetParent(hwnd, parent);
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... -win-api-c
Мобильная версия