Здравствуйте, Similex, Вы писали:
S>Я нашел как это сделать:
S>S>void CMainFrame::OnSysCommand(UINT nID, LPARAM lParam)
S>{
S> if(nID!=61730 && nID!=61458 && nID!=61456)
S> CFrameWnd::OnSysCommand(nID, lParam);
S>}
S>
S>и делов то...
Вот только есть несколько проблем:
1) Соответствующие пункты меню остались активными, что дезинформирует пользователя — нехорошо. Нужно сделать что-нибудь типа
void CMyWindow::OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu)
{
parent_class::OnInitMenuPopup(pPopupMenu, nIndex, bSysMenu);
pPopupMenu->EnableMenuItem(SC_MOVE, MF_GRAYED|MF_BYCOMMAND);
}
2) Окно все равно можно перетащить на новое место, если сначала потянуть за левый верхний край, поместить угол окна, куда надо, а потом потянуть за правый нижний и восстановить размер. Если уж хочешь сделать NO MOVE, то придется сделать и NO SIZE, иначе смысл теряется.
3) Полностью это проблему все равно не решает — у пользователя остается способ подвинуть твое окно. Пойди в task bar (там, где системная кнопка Start находится), щелкни правой кнопкой мыши, выбери в меню Cascade Windows (или Tile Windows...) и любуйся результатом