怎样让对话框只能在指定位置拖动? 大家好,如题问一下,怎样让对话框只能在指定位置拖动?就像搜狗输入法的悬浮窗口一样,不管怎么样只能在屏幕的四周拖动,而不能拖出屏幕外面去,就好像有一个墙堵着一样。怎样才能做出这种效果呢??谢谢了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 有一个笨点的方法,就是在WM_MOUSEMOVE中计算鼠标的位置来达到控制的目的,因为你在拖动时一定会是用WM_MOUSEMOVE的。 呃,检测控件位置呀,比如屏幕,得到相对窗体坐标再转化成相对屏幕,左上角相对屏幕坐标知道了,控件大小也知道,阻止移出去还不简单?在onMove(大概这个方法)里判断一下就成了(有个参数能得到当前坐标,自己查吧)。 是WM_MOVE检测窗口矩形位置,然后跟屏幕位置做判断 在OnLeftButtonDown()中 限制 鼠标的移动范围就可以了~~我的方法有点笨,3# 的方法应该可以~! 试试处理 WM_GETMINMAXINFO 消息 是响应WM_MOVING消息,not WM_MOVE;WM_MOVING消息在Window里面void CTest1Dlg::OnMoving(UINT fwSide, LPRECT pRect) { int w=pRect->right-pRect->left; int h=pRect->bottom-pRect->top; pRect->left=pRect->left<200?200:pRect->left; pRect->top=pRect->top<200?200:pRect->top; pRect->right=pRect->left+w; pRect->bottom=pRect->top+h; CDialog::OnMoving(fwSide, pRect); // TODO: Add your message handler code here }测试通过 WM_WINDOWPOSCHANGED/WM_WINDOWPOSCHANGING都可以的 在CFormview中绘制图形问题 弱弱的问下,从文件流中读取的数据是按什么样的顺序读取啊? 求打开 raw 文件格式的代码 对话框启动的消息过程 送100分,麻将界面设计问题! 怎样在程序中选择录音输入设备(比如麦克风),并且控制其音量? 请问怎样才能真正作成English版本的exe程序? 请帮忙看看开发一张多媒体光盘的程序员该提成多少? 有偿求购VC源代码(基于形状的图象检索) 如果根据接口的名称来获取UUID CXImage缩放图片的实现 CListCtrl,LVS_LIST样式如何添加竖直滚动条?
检测窗口矩形位置,然后跟屏幕位置做判断
3# 的方法应该可以~!
void CTest1Dlg::OnMoving(UINT fwSide, LPRECT pRect)
{
int w=pRect->right-pRect->left;
int h=pRect->bottom-pRect->top;
pRect->left=pRect->left<200?200:pRect->left;
pRect->top=pRect->top<200?200:pRect->top;
pRect->right=pRect->left+w;
pRect->bottom=pRect->top+h;
CDialog::OnMoving(fwSide, pRect);
// TODO: Add your message handler code here
}
测试通过