设为首页  
联系我们  
加入收藏  
网页制作 冲浪宝典 图形图像 操作系统 软件教学 编程开发 认证考试 安全技术 站长专区 文学驿站 娱乐天地 游戏天地 办公软件
文章搜索
您的位置: 首页 >> 文章首页 >> 编程开发 >> Visual C++ >> WINDOWS高级窗口的客户区域拖动技术及其应用
精品推荐
Visual C++点击TOP10
·用WINSOCK实现聊天室的VC++程序设计
·利用mfc编写activex控件
·用vc实现生产者消费者问题
·DirectX8.0
·C/C++ 大量经典编程书籍下载
·VC快捷键大全
·CreateFileMapping的MSDN翻译和使用心得
·Windows环境下的麦克风录音系统
·挂钩Windows API
·如何开发OPC Server
编程开发点击TOP10
·数字小键盘指法练习
·用C语言编通讯录程序(初学者级别的)
·ASP.NET 程序中常用的三十三种代码
·我写的Java学生成绩管理系统源代码
·CHK文件恢复工具
·Modem 常用AT指令集
·java笔试题
·异常java.sql.SQLException: Io exception:The Network Adapter could not establish connection
·单片机模拟I2C总线及24C02(I2C EEPROM)读写实例(源代码)
·C++经典电子书下载
精选专题

WINDOWS高级窗口的客户区域拖动技术及其应用

作者: 来源:网络文章 时间:2005-12-13 18:42:44

WINDOWS高级窗口的客户区域拖动技术及其应用(5)
SelectObject(hDC,GetStockObject(NULL_BRUSH));//屏蔽画刷

SelectObject(hDC2,GetStockObject(WHITE_PEN));//选择画笔

for (k=0;k

xx1-=1;

xx2+=1;

yy1-=1;

yy2+=1;

MoveTo(hDC2,xx1,yy1);

LineTo(hDC2,xx2,yy1);

MoveTo(hDC2,xx1,yy1);

LineTo(hDC2,xx2,yy1);

}

SetROP2(hDC2,oldrop2); //恢复原来作图方式

ReleaseDC(NULL,hDC2); //释放设备描述符表

}

//函数3:利用画点函数实现不同图案的拖动虚框

void DrawMoveRect(int xx1,int yy1,int xx2,int yy2,int xy)

{ HDC hDC2;

int oldrop2,I,j,x1,x2,y1,y2;

hDC = GetDC(NULL); //取得全屏幕设备描述句柄

oldrop2= GetROP2(hDC); //取得原来屏幕画图方式

SetROP2(hDC,R2_XORPEN); //设置异或屏幕画图方式

SelectObject(hDC,GetStockObject(NULL_BRUSH));//屏蔽画刷

SelectObject(hDC2,GetStockObject(WHITE_PEN));//选择画笔

for (j=0;j

x1=xx1-j; //带注释部分为另一图案

x2=xx2+j;

y1=yy1-j;

y2=yy2+j;

for (I=x1;I

SetPixel(hdc,I,y1,RGB(255,0,0));

//if (I

for (I=y1;I

SetPixel(hdc,x2,I,RGB(255,0,0));

//if (I

for (I=x2;I>x1;I-=2)

SetPixel(hdc,I,y2,RGB(255,0,0));

//if (I>x1+2) SetPixel(hdc,I-1,y2-1,RGB(255,0,0));}

for (I=y2;I>y1;I-=2)

SetPixel(hdc,x1,I,RGB(255,0,0));

//if (I>y1+2) SetPixel(hdc,x1+1,I-1,RGB(255,0,0));}

}

SetROP2(hDC2,oldrop2); //恢复原来作图方式

ReleaseDC(NULL,hDC2); //释放设备描述符表

}

三、WINDOWS高级窗口客户区域拖动技术实现的“三步曲”

WINDOWS 高级窗口的客户区域拖动命令判断、拖动功能的鼠标光标动态提示和定制窗口拖动框函数之后,就需要实现整个拖动方案中的拖动过程启动、窗口拖动框移动和拖动结束处理的三步曲过程。于是必须在窗口函数中直接处理WM_LBUTTONDOWN、WM_MOUSEMOVE和WM_LBUTTONUP消息,来具体处理上述三个步骤中的细节问题。

第一步,在窗口函数中对鼠标点击消息WM_LBUTTONDOWN进行判断处理,以处理用户通过鼠标光标动态提示功能获取满足窗口拖动条件时,按下鼠标左键产生的启动拖动过程消息,其功能性代码如下:

POINT pt;

BOOL MoveFlag=FALSE;

case WM_LBUTTONDOWN:

pt = MAKEPOINT(lParam); //获取鼠标光标指针

if(PtInRect(&DragRT,pt)){//DragRT为拖动命令区域

DragBegin((LPRECT)&WinRT,lParam,hWnd,2);

共6页 9 7 [1] [2] [3] [4] [5] [68 :>

WINDOWS高级窗口的客户区域拖动技术及其应用 相关文章:
WINDOWS高级窗口的客户区域拖动技术及其应用 相关软件:
特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
转载请注明来源:http://www.xgdown.com