Никто и не спорит, что CFormView::OnInitialUpdate() вызывается один
раз. Просто в конкретной реализации, где в OnInitialUpdate() вызывается:
class DetailForm : public CFormView
{
...
}
void DetailForm::TansformViewForDIN(bool isDIN)
{
int ID[DIN_VIEW_OBJECTS]={IDC_DIN_GROUP, IDC_DIN_DATA};
CWnd* pWnd;
int it;
for(it=0;it<DIN_VIEW_OBJECTS;it++){
pWnd = GetDlgItem(ID[it]);
if(pWnd){
if (isDIN){
pWnd->ShowWindow(SW_SHOW);
dinEXT = 100;
} else {
pWnd->ShowWindow(SW_HIDE);
dinEXT = 0;
};
}
}
RECT r;
GetClientRect( &r);
CWnd* p = GetDlgItem( IDC_DETAIL_LIST);
p->MoveWindow(2, 62+dinEXT, r.right-4, r.bottom -64);
}
компилятор генерит код, котороый Касперский принимает за вирус.
Разница с Вашим примером - только, что WinAPI работает опосредовано через класс CWnd.
Скорее, коллизию вызывает GetClientRect( &r);, поскольку в OnInitialUpdate() окна еще нет.