如何实现在基于对话框的窗口只能改变大小,不能拖动?
解决方案 »
- 关于程序运行中换图片的问题
- 对话框背景图片
- VC中TabCtrl控件如何像对话框一样具有Resizing属性.
- 初学MFC,请教大牛一个问题~
- rdmsr指令需在ring0下执行,请问在VC里如何得到在ring0运行指令的权限?
- 请教~关于Insert Project to Workspace的用法
- 请教图像如何转换为asc码
- 那位大哥知道socket编程有什么好书,请介绍给小弟!
- ?lParam = (LPARAM)(LPCTSTR)lpsz中LPARAM和LPCTSTR分别代表什么意思
- 在splitframe窗口中,如何设置某一子窗口最小值,也就是说鼠标拖到最小值就拖不动了
- 如何将16位色的位图加到工具栏上?
- 求救呀!我现在在同一程序中一方接收UDP包,一方建立tcp连接,可为什么在程序从启动到运行一段时间都比较正常,可一段时间后会出现接收不
那膜window 就会让你,drag到任意地方,即是你的对胡框没有标题栏,
即发消息: PostMessage(WM_NCLBUTTONDOW,
HTCAPTION,MAKELPARAM(point.x,point.y));
//then everything is ok!
那膜window 就会让你,drag到任意地方,即是你的对胡框没有标题栏,
即发消息: PostMessage(WM_NCLBUTTONDOW,
HTCAPTION,MAKELPARAM(point.x,point.y));
//then everything is ok!
{
if((nID & 0xFFF0) == SC_MOVE)
{
return;
}
else
{
CDialog::OnSysCommand(nID, lParam);
}
}
响应WM_SYSCOMMAND 消息,屏蔽SC_MOVE,对话框可不能移动。
在你的对话框中的windowproc()中,截获HTCAPTION
消息,自己处理,就好了,我试验后,发现一个问题,标题栏上的关闭扭失效,你可以以另外的放法关闭程序。代码:
LRESULT CxxxDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{switch (wParam)
{
case HTCAPTION:
return 0l;//拖动消息不发送
defalut :
break;
}
return CDialog::WindowProc(message, wParam, lParam);
}
我没有完全按照各位的方法去做,而是在walyqkaoyan(walyqkaoyan) 的基础上,稍作改动,代码w为case WM_SYSCOMMAND:
if((wParam-2) == SC_MOVE)
{return 0;}
break;
因为拖动产生的参数wParam老是等于61458,而SC_MOVE值为61456,所以只好减去2了。方法我觉得可能有缺陷,但是实在想不出别的方法,只好出此下策。那位有更好的方法欢迎对我提出。谢谢大家!限制改变大小得方法跟这个类似。呵呵