Здравствуйте, Vadim B, Вы писали:
VB>Здравствуйте, 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>>и делов то...
VB>Вот только есть несколько проблем:
VB>1) Соответствующие пункты меню остались активными, что дезинформирует пользователя — нехорошо. Нужно сделать что-нибудь типа
VB>VB>void CMyWindow::OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu)
VB>{
VB> parent_class::OnInitMenuPopup(pPopupMenu, nIndex, bSysMenu);
VB> pPopupMenu->EnableMenuItem(SC_MOVE, MF_GRAYED|MF_BYCOMMAND);
VB>}
VB>
а что и нужно было если хочешь отключить вообще одиночный клик просто допиши пару цифр помимо 61458 .... проблема решена.
VB>2) Окно все равно можно перетащить на новое место, если сначала потянуть за левый верхний край, поместить угол окна, куда надо, а потом потянуть за правый нижний и восстановить размер. Если уж хочешь сделать NO MOVE, то придется сделать и NO SIZE, иначе смысл теряется.
да-да-да на счет этого вы уважаемый правы просто как то не заметил, NO_MOVE я сделал в PreCreateWindow — флаг WS_THICKFRAME. проблема тоже решена.
VB>3) Полностью это проблему все равно не решает — у пользователя остается способ подвинуть твое окно. Пойди в task bar (там, где системная кнопка Start находится), щелкни правой кнопкой мыши, выбери в меню Cascade Windows (или Tile Windows...) и любуйся результатом
а вот сдесь.... Да эта проблема остается. Только как ее решить кто-нить знает?????