Хорошо, оказалось, что это не из-за UpdateAllViews()
. Это на самом деле происходит всякий раз, когда вы открываете документ в MFC. Многое происходит, когда вы делаете это, и среди этого, очевидно, посылается команда изменения размера.
Эта команда изменения размера изменит размер представления до размера его "документа" (не путать с документом в архитектуре документа / представления). В моем случае (поскольку я основывал свой взгляд на CFormView
), размер документа соответствовал размеру формы.
Форма по умолчанию не изменяется при изменении размера окна, что, как я полагаю, логично, поэтому всякий раз, когда происходит "обновление" представления, оно масштабируется так, чтобы соответствовать его форме.
Я решил это, вызвав SetScaleToFitSize()
в функции OnSize()
моего представления, что приводит к изменению размера не только представления, но и самой формы при каждом изменении размера представления. Поскольку форма теперь всегда имеет тот же размер, что и представление, обновление размера, отправляемое при открытии файла, не имеет никакого эффекта.