Re[4]: STOP! NO MOVE
От: Vadim B  
Дата: 31.05.03 00:06
Оценка:
Здравствуйте, 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...) и любуйся результатом
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.