WINDOWS窗口的客户区域拖动技术及其应用
http://tech.ddvip.com 2006年03月31日 社区交流
本文详细介绍WINDOWS窗口的客户区域拖动技术及其应用
case WM_LBUTTONDOWN: //鼠标光标点击处理
POINT pt; //定义鼠标在屏幕上的位置指针
pt=MAKEPOINT(lParam); //取得鼠标光标当前位置指针
for(I=0;I
if(PtInRect(&DragRT[I],pt)){//DragRT[I]为按钮矩形数组
break; //鼠标点击在其它按钮上中断
}
}
if(I
//鼠标点击在其它特定客户区域内则处理其它按钮功能
}else{
//鼠标点击在非客户区域内则完成窗口拖动方案的启动
}
break;
3、窗口拖动功能的鼠标光标动态提示方法
在无标题条常居顶层高级窗口应用程序中,既可以采用将特定客户区域作为拖动命令按钮的方法,也可以采取在非特定客户区域检测窗口拖动命令的方法,或者两种方法兼顾使用。在使用第一种方法时,可以在命令按钮中用特定的图标或文字来提示用户该命令按钮的功能,而后一种方法由于矩形区域无法确定不可能用图标或文字来提示,或根本无法显示图标和文字(如非特定客户区域为窗口边界区域等),用户根本无法知道非特定客户区域具有拖动窗口功能,这时唯有充分利用鼠标光标的动态提示功能,就象WINDOWS 普通窗口中鼠标光标停在窗口边框上时鼠标光标变成双箭头形状来提示用户此时可以改变窗口大小那样,这个功能在高级窗口界面设计中非常重要。
实现鼠标光标动态提示功能前需要定制鼠标光标形状,窗口拖动功能的动态提示光标形状一般为四箭头图案,这可以利用微软公司的SDK、FPT3.0和VC++4.1等高级开发软件中的资源编辑器"IMAGE EDIT"等来实现。光标资源文件一般为32X32的2色或16色.CUR图形文件,可根据实现的功能来具体确定光标图案或直接使用WINDOWS 系统中提供的光标资源文件,当自己利用资源编辑器绘制光标图案后,还需要利用DEBUG. EXE程序修改光标资源文件中的鼠标光标显示偏移坐标,以便光标图案能象WINDOWS 系统中的动态提示光标一样,动态提示时光标图案中心点正好处于屏幕的当前位置。这个偏移坐标值位于光示资源文件中的10和12处的双字节位置,如动态提示光标资源文件名为MOUSEM.CUR,要使32X32(2色)的光标图形显示时图案的中心点正好处于当前屏幕位置,其修改方法如下:
责编:豆豆技术应用