读书人

怎么使窗口不能被用户移动位置

发布时间: 2012-03-01 10:25:47 作者: rapoo

如何使窗口不能被用户移动位置
如题
我找到的方法:
Win32程序中可以实现如下
case WM_NCHITTEST:
{
LRESULT x=DefWindowProc (hwnd, message, wParam, lParam);
switch(x){
case HTTOP://阻止鼠标拖放边框改变大小
case HTTOPLEFT:
case HTTOPRIGHT:
case HTBOTTOM:
case HTBOTTOMLEFT:
case HTBOTTOMRIGHT:
case HTLEFT:
case HTRIGHT:
case HTCAPTION://阻止鼠标选定标题栏
case HTSYSMENU://阻止系统菜单显示
return 0;
}
return x;
}

有没有其他简便方法?MFC窗口如何处理?

[解决办法]
UINT CMainFrame::OnNcHitTest(CPoint point)
{
UINT x = HTTOP | HTTOPLEFT | HTTOPRIGHT | HTBOTTOM | HTBOTTOMLEFT |
HTBOTTOMRIGHT | HTLEFT | HTRIGHT | HTCAPTION | HTSYSMENU;

return x;

// return CFrameWnd::OnNcHitTest(point);
}

[解决办法]
xlzxlich(阳光)正解
[解决办法]
oh,my god 我也不清楚
[解决办法]
学习
[解决办法]
Hook MoveWindow 和SetWindowPos等一系列的API

怎么Hook,参看我BLOG
[解决办法]
UINT CmfcDlg::OnNcHitTest(CPoint point )
{
UINT nHitTest =CDialog::OnNcHitTest(point);

if(nHitTest == HTCAPTION)
return HTCLIENT;
else
return nHitTest;
}前面的写错了,不好意思哈

读书人网 >VC/MFC

热点推荐