ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
22 июля
1011444 Топик полностью
ETM (11.06.2020 01:51, просмотров: 234) ответил RxTx на А зачем это творчество? CFormView::OnInitialUpdate() вызывается гарантированно один раз.
Никто и не спорит, что 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() окна еще нет.