Здравствуйте, Serguei666, Вы писали:
S> Что вы тогда будете делать? Есть свой котелок?
Нет. Не буду.
>>1) Пара "GetDlgItem (IDC_MY_ITEM)" + "SetWindowPos()" не работает.
>А если я докажу, что работает?
Попробуй.

Благодаря наводке template-а испытания "::MoveWindow" прошли успешно.
Спасибо за его лаконичный и точный ответ. Он сэкономил мне массу времени.
Внимательное изучение MSDN на предмет различий между ф-ми
SetWindowPos и MoveWindow привело к тому, что оказывается
MoveWindow двигает все подряд, а SetWindowPos — избирательно.
(Цитировать MSDN не буду, там всего по 3 строки на каждую ф-цию).
S>2) Изменять шаблон диалога перед запуском — не удается позиционировать объект с точностью до пикселя.
S>Утверждение непонятно.
Попробую объяснить. (Хотя желания мало).
При позиционировании объектов при помощи шаблона диалога (DLGTEMPLATEEX)
координаты указываются в "логических единицах". Перевод их в физические
(пиксели) производится непосредственно при создании диалога. Это дает
возможность масштабировать элементы диалога (как и сам диалог) в зависимости
от конкретных настроек. Более точно — смотри GetDeviceCaps. Практика показывает,
что коэффициент преобразования — не целый. Поэтому поместить объект в
точку (0,0) — все получится как надо, а вот в точку (1,1) — уже далеко не всегда.
(Я бы сказал — никогда). Посмотреть на этот балет можно сделав снапшот диалога,
и сравнив логические координаты объектов и реальные отступы (в пикселях).
P.S.
Вопрос решен ::MoveWindow работает как надо.