Re[5]: STOP! NO MOVE
От: Similex  
Дата: 31.05.03 11:35
Оценка:
Здравствуйте, 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...) и любуйся результатом


а вот сдесь.... Да эта проблема остается. Только как ее решить кто-нить знает?????
Нет ничего не возможного
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.