vc++ 中当对话框的边界属性(Border)设为none后,窗口无法移动。如果我想移动窗口,该怎么做?
解决方案 »
- MFC .exe触发了一个断点问题
- 关于获取网页内容的问题
- 不显示删除回复显示所有回复显示星级回复显示得分回复 使用VS2008团队版本,新建一个MFC,编译后,窗口点击一下,速度感觉很慢
- 在WebBrowser中执行有activex的页面怎么会卡着不动了?但是我用ie直接开就可以?
- 请查看一下,我的串口读写程序及调用。有难题需要高手解决
- 一个简单问题,散分,在线等待ing...
- 在类成员函数里new的内存
- 请大虾帮忙:一个局域网中的一台计算机与另一个局域网的一台计算机通过一公网服务器是否可以建立TCP连接进行通信
- 狂面的问题:如何将ATL控件里的数值(VARIANT类型)传出来???接口怎么写呀?
- OCX控件调用动态库接口问题
- {求救}!!帮我看看这个内存泄漏!!!
- 紧急求援:一个对话框的问题,大虾们进来看看,救救我吧(打我也行啊)
或者MoveWindow
CDialog::OnLButtonDown(nFlags, point);
中添加:
PostMessage(WM_NCLBUTTONDOWN,HTCAPTION,MAKELPARAM(point.x, point.y)); 就可以在任意位置按住鼠标左键来移动
void shader::OnLButtonDown(UINT nFlags, CPoint point)
{
CPoint point1;//计算鼠标相对于对话框的位置
CRect rect;
GetCursorPos(&point1);
GetWindowRect(&rect);
awidth=point1.x-rect.left;//该量为类成员(在public中定义 int)
aheight=point1.y-rect.top;//该量为类成员(在public中定义 int)
m_con=true;//该量为类成员(在public中定义 bool m_con=false)
//如果该量为true,表示可以拖动
CDialog::OnLButtonDown(nFlags, point);
}
void shader::OnLButtonUp(UINT nFlags, CPoint point)
{
m_con=false;//不可拖动
CDialog::OnLButtonUp(nFlags, point);
}void shader::OnTimer(UINT nIDEvent)
{
CPoint point;
CRect rect;
GetCursorPos(&point);
this->GetWindowRect(&rect);
rect.right=rect.Width()+point.x-awidth;//注意顺序:先计算right和
//bottom
rect.bottom=rect.Height()+point.y-aheight;
rect.left=point.x-awidth;
rect.top=point.y-aheight;
this->MoveWindow(rect); CDialog::OnTimer(nIDEvent);}其实也是是计算了一下鼠标的位置,然后让对话框移动该位置,同时考虑鼠标与对话框的相对距离.别忘了SetTimer(1,10,0);
{
UINT nHitTest = CFrameWnd::OnNcHitTest (point);
if ((nHitTest == HTCLIENT) && (::GetAsyncKeyState (MK_LBUTTON) < 0))
nHitTest = HTCAPTION;
return nHitTest;
}