свою прогу я не нашел, а в чужих разбираться сложнее, но в примерах к masmy есть такой вариант: Код (Text): .elseif uMsg == WM_SIZE invoke MoveWindow,hStatus,0,0,0,0,TRUE в ernie.asm, но повторить с диалогом у меня пока не вышло - то ли склероз, то ли маразм, то ли оба сразу
врядли это поможет - это же notify. Только явные вызовы SetWindowPos и ручками пересчитывать координаты вложенных контролов. Да - делать это надо из обработчика WM_SIZE для окна-контейнера.
вот я идиот! написал wParam == WM_SIZE и колдую, а нихрена не выходит вот со статусбаром, а за эдиты - не разбирался... _1982540668__resize.zip
Вобщем как я и предполагал, всё нужно руками.. Для WM_SIZE будет тогда так: Код (Text): DlgProc proc hWnd, uMsg, wParam, lParam mov eax, uMsg WM_CASE eax, <INITDIALOG, SIZE, COMMAND, CLOSE> @r0: xor eax, eax jmp @r @INITDIALOG: jmp @r1 @SIZE: invoke MoveWindow, $invoke(GetDlgItem, hWnd, IDC_MSCTLS_STATUSBAR1),0,0,0,0,TRUE jmp @r1 ..........
Кстати, а в чем фишка? Мы передаём в MoveWindow нулевые параметры, и только последним параметром идет TRUE чтоб послать WM_PAINT главному окну. Это как-то должно делаться автоматом стилями окна/контролов в диалоговом шаблоне без дополнительного кода, но вот как?
да я вот упражняюсь сейчас в абед - пока безрез., но нужно заметить, что народ наклепал шаблонов и успокоился - я всегда думал, что за маразм - центрировать окно самому, когда есть DS_CENTER - а так ведь практически во всех примерах масма сделано!
на тебе еще для прикола пс: ты лучше GetDlgItem один раз сделай снаружи - ведь хэндл контрола не меняется - на один вызов меньше будет каждый раз. _457132955__resize.zip
ИМХО. В обработку сообщения о изменении размеров диалогового окна необходимо внести отправку сообщения всем контролам (элементам управления) пропорции и положение в окне которых должно изменяться. В сообщении должны присутствовать новые координаты и размер элементов управления. Это происходит потому, что винда считает, что при изменении размеров основного окна, положение и размер дочерних окон определяется пользователем, как было сказано выше.
Возникла проблема, с тем что не изменяються размеры окна... Существует два ListView'а(на TabStrip'е) Изменяю размеры первого пропорционально размерам окна, а второго мне надо изменять и размеры и позицию... Изменяю позицию относительно первого и размеры, но позиция изменяеться, размер нет! Функция заканчиваеться успешно... Видно где то ошибка или с параметрами или с флажками. 153692361__Unicorn.rar
Проблему нашел, забыл изменять размер самого ТАВ*а... Из за этого все функции размеры увеличивали скорее всего но я этого не видел... так как нада меньше готовиться к Новому Году(то есть пить) и всё будет ок. ))))