18 get_position_callback_(get_position_callback),
23 auto const initial_width =
25 auto const initial_height =
30 .window_style = WS_POPUP,
31 .extended_window_style = WS_EX_NOACTIVATE | WS_EX_TOOLWINDOW,
32 .box_constraints = constraints,
33 .initial_window_rect = {{0, 0}, {initial_width, initial_height}},
35 .owner_window = parent,
36 .nCmdShow = SW_SHOWNOACTIVATE,
38 .is_sized_to_content =
true});
40 reinterpret_cast<LONG_PTR>(parent_));
74 RECT parent_client_rect;
75 GetClientRect(parent_, &parent_client_rect);
78 POINT parent_top_left = {parent_client_rect.left, parent_client_rect.top};
79 POINT parent_bottom_right = {parent_client_rect.right,
80 parent_client_rect.bottom};
82 ClientToScreen(parent_, &parent_top_left);
83 ClientToScreen(parent_, &parent_bottom_right);
86 HMONITOR monitor = MonitorFromWindow(parent_, MONITOR_DEFAULTTONEAREST);
90 auto rect = get_position_callback_(
92 WindowRect{parent_top_left.x, parent_top_left.y,
93 parent_bottom_right.x - parent_top_left.x,
94 parent_bottom_right.y - parent_top_left.y},
96 SetWindowPos(
window_handle_,
nullptr, rect->left, rect->top, rect->width,
97 rect->height, SWP_NOACTIVATE | SWP_NOOWNERZORDER);