首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

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

2012-03-01 
如何使窗口不能被用户移动位置如题我找到的方法:Win32程序中可以实现如下caseWM_NCHITTEST:{LRESULTxDefW

如何使窗口不能被用户移动位置
如题
我找到的方法:
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;
}前面的写错了,不好意思哈

热点排行