Сообщение Re[22]: Или бага, или sort() от меня чего-то ждет от 11.10.2016 5:55
Изменено 11.10.2016 6:27 Scorpion1105
Здравствуйте, c-smile, Вы писали:
CS>Такое впечатление что у тебя где-то вызов SciterGetMin/MaxWidth/Height() где-то воткнут не по делу.
Воткнут, да. Но казалось бы, что по делу — реакция на WM_GETMINMAXINFO для ограничения минимального размера диалога:
Так неправильно?
Как тогда? Сохранить результат и не запрашивать его на каждое сообщение?
И как так получается, что константная, по сути, функция влияет на рендер?
CS>Такое впечатление что у тебя где-то вызов SciterGetMin/MaxWidth/Height() где-то воткнут не по делу.
Воткнут, да. Но казалось бы, что по делу — реакция на WM_GETMINMAXINFO для ограничения минимального размера диалога:
INT_PTR scdialog::on_WM_GETMINMAXINFO(HWND hwndDlg, WPARAM wParam, LPARAM lParam)
{
RECT rcScreen;
::GetWindowRect(hwndDlg, &rcScreen);
RECT rcClient = rcScreen;
::ScreenToClient(hwndDlg, (LPPOINT)&rcClient);
::ScreenToClient(hwndDlg, (LPPOINT)&rcClient.right);
SIZE szBorder = { rcScreen.right - rcScreen.left - rcClient.right,
rcScreen.bottom - rcScreen.top - rcClient.bottom };
auto ctl = self(hwndDlg);
MINMAXINFO *pInfo = (MINMAXINFO *)lParam;
POINT Max = ctl->GetMaxDialogSize();
POINT Min = ctl->GetMinDialogSize();
Min.x += szBorder.cx;
Min.y += szBorder.cy;
pInfo->ptMinTrackSize = Min;
pInfo->ptMaxTrackSize = Max;
return 0;
}
SIZE scdialog::GetMinDialogSize()
{
SIZE sz = { 0, 0 };
sz.x = ::SciterGetMinWidth(hwnd);
sz.y = ::SciterGetMinHeight(hwnd, sz.x);
return sz;
}
Так неправильно?
Как тогда? Сохранить результат и не запрашивать его на каждое сообщение?
И как так получается, что константная, по сути, функция влияет на рендер?
P.S. Ну и в обработчике WM_INITDIALOG есть, но там-то должно быть точно по делу | |
| |
Re[22]: Или бага, или sort() от меня чего-то ждет
Здравствуйте, c-smile, Вы писали:
CS>Такое впечатление что у тебя где-то вызов SciterGetMin/MaxWidth/Height() где-то воткнут не по делу.
Воткнут, да. Но казалось бы, что по делу — реакция на WM_GETMINMAXINFO для ограничения минимального размера диалога:
Так неправильно?
Как тогда? Сохранить результат и не запрашивать его на каждое сообщение?
И как так получается, что константная, по сути, функция влияет на рендер?
P.P.S. Вопрос по инспектору — он совсем не умеет показывать markup для контента, загруженного через SciterLoadHtml? Или можно как-то?
Так получается, что всё показывает — DOM, внешние css, картинки и пр., а саму страницу нет.
CS>Такое впечатление что у тебя где-то вызов SciterGetMin/MaxWidth/Height() где-то воткнут не по делу.
Воткнут, да. Но казалось бы, что по делу — реакция на WM_GETMINMAXINFO для ограничения минимального размера диалога:
INT_PTR scdialog::on_WM_GETMINMAXINFO(HWND hwndDlg, WPARAM wParam, LPARAM lParam)
{
RECT rcScreen;
::GetWindowRect(hwndDlg, &rcScreen);
RECT rcClient = rcScreen;
::ScreenToClient(hwndDlg, (LPPOINT)&rcClient);
::ScreenToClient(hwndDlg, (LPPOINT)&rcClient.right);
SIZE szBorder = { rcScreen.right - rcScreen.left - rcClient.right,
rcScreen.bottom - rcScreen.top - rcClient.bottom };
auto ctl = self(hwndDlg);
MINMAXINFO *pInfo = (MINMAXINFO *)lParam;
POINT Max = ctl->GetMaxDialogSize();
POINT Min = ctl->GetMinDialogSize();
Min.x += szBorder.cx;
Min.y += szBorder.cy;
pInfo->ptMinTrackSize = Min;
pInfo->ptMaxTrackSize = Max;
return 0;
}
SIZE scdialog::GetMinDialogSize()
{
SIZE sz = { 0, 0 };
sz.x = ::SciterGetMinWidth(hwnd);
sz.y = ::SciterGetMinHeight(hwnd, sz.x);
return sz;
}
Так неправильно?
Как тогда? Сохранить результат и не запрашивать его на каждое сообщение?
И как так получается, что константная, по сути, функция влияет на рендер?
P.S. Ну и в обработчике WM_INITDIALOG есть, но там-то должно быть точно по делу | |
| |
P.P.S. Вопрос по инспектору — он совсем не умеет показывать markup для контента, загруженного через SciterLoadHtml? Или можно как-то?
Так получается, что всё показывает — DOM, внешние css, картинки и пр., а саму страницу нет.