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

MFC无标题栏窗口移动有关问题

2013-08-06 
MFC无标题栏窗口移动问题。我在做一个小系统,为了美化界面,我把标题栏去掉了。1.还剩下菜单栏和工具栏。我把

MFC无标题栏窗口移动问题。
我在做一个小系统,为了美化界面,我把标题栏去掉了。
1.还剩下菜单栏和工具栏。我把菜单栏高度设置为70,请问能通过菜单栏和工具栏移动窗口吗?(客户区内移动我会),怎么做?
2.360安全管家那种软件C#做的吧,我想知道它那非客户区是怎样做的的(类似去放大版的工具栏,且能移动),MFC能做到相同的效果么?不懂的可不答,主要是解决第一问。
谢谢大家!
MFC 无标题栏 窗口移动 界面美化
[解决办法]
360安全管家是c++做的。
它没有非客户区。
一般拖动是在OnNcHitTest中处理,由于没有非客户区,所以可以根据鼠标点的位置来判断,如果拖动,返回HTCAPTION,如果不拖动,返回HTCLIENT
[解决办法]
WM_NCHITTEST消息判断拖曳的位置
[解决办法]
UINT CMainWindow::OnNcHitTest (CPoint point)

 
  {

 
      UINT nHitTest = CFrameWnd::OnNcHitTest (point);

 
      if (nHitTest == HTCLIENT) //如果是客户区
 
              {
 
               nHitTest = HTCAPTION; //则把它当成标题栏
 
              }
 
      return nHitTest;
  }

[解决办法]

引用:
Quote: 引用:

WM_NCHITTEST消息判断拖曳的位置


哥能说具体点吗!我为主框架添加了这个消息。然后呢。
这个要具体百度一下有很多啊
http://baike.baidu.com/view/2095670.htm
[解决办法]
窗口映射WM_LBUTTONDOWN消息 然后在消息响应函数中 类似
void CUpdateDlg::OnLButtonDown( LPPOINT lpPoint )
{
if( lpPoint->y < 54 )
{
   ::PostMessage( m_hWnd, WM_NCLBUTTONDOWN, HTCAPTION, (WPARAM)lpPoint );
}
}
[解决办法]
void CDlgXXX::OnLButtonDown(UINT nFlags, CPoint point)   
{  
//处理移动  
if (point.y < 26&&!IsZoomed())  


PostMessage(WM_NCLBUTTONDOWN,HTCAPTION,MAKELPARAM(point.x,point.y)); 
} 

热点排行