如何生成一个可拖动的控件?比如编辑框等。
解决方案 »
- 第三方CMenuBar类的,return LoadMenu(MAKEINTRESOURCE(nID));这一行出错了.
- 怎样统计CEdit 中输入的汉字及字母之和
- 关于键盘响应的问题
- 分特啊!!!!SQL SERVER的存储过程有bug 天哪
- 请问如何将一幅320*240的556(每个象素为2 byte)的bmp位图的数据读入缓冲区
- 怎样单击在左边的一个列表项而使右边改变控件?
- 怪事!大侠看过来@#$
- 小妹高分求助:有谁用过IHTMLElementCollection IHTMLDocument2接口的。
- 我是第一次上这个网站, 非常的棒!我有个CMap 的问题请教,一定要回答, 否则。。。
- 为什么计算出来的透视变换矩阵的偏移系数是负的,导致变换后的坐标也是负的?
- 关于拨号上网!!(200分求教)
- 急急急~~解决的话,你要多少分我都给(<=me)!!
响应编辑框OnClickDown消息,然后发送一个消息给父窗口的m_bMove=TRUE,让父窗口的子线程负责移动。
响应编辑框OnClickUp消息,发送一个消息给父窗口的m_bMove=FALSE,父窗口的子线程停止移动。
{
CRect CltRect,DlgRect; //声名按钮区域和父窗口区域 POINT mPoint; //声名鼠标坐标
mPoint=point;
ClientToScreen(&mPoint); //转化成屏幕坐标
GetClientRect(CltRect);
ClientToScreen(CltRect);
GetParent()->GetClientRect(DlgRect);
ClientToScreen(DlgRect); int minX,minY,maxX,maxY; //父窗口的最大最小区域坐标
int x,y;
minX=DlgRect.left;
minY=DlgRect.top;
maxX=DlgRect.right;
maxY=DlgRect.bottom;
srand((unsigned)time(NULL)); //初始化
int isAdd; //坐标相加还是减少
isAdd=rand();
isAdd=isAdd%2+1;
if(isAdd==1)
{//处理按钮的x坐标
x=rand();
x=x%((mPoint.x-CltRect.Width()-1)-minX)+minX;
}
else
{//处理按钮的x坐标
x=rand();
x=x%(maxX-(mPoint.x+1))+(mPoint.x+1);
}
isAdd=rand();
isAdd=isAdd%2+1;
if(isAdd==1)
{//处理按钮的y坐标
y=rand();
y=y%((mPoint.y-CltRect.Height()-1)-minY)+minY;
}
else
{//处理按钮的y坐标
y=rand();
y=y%(maxY-(mPoint.y+1))+(mPoint.y+1);
} POINT ClientPt;
ClientPt.x=x;
ClientPt.y=y;
ScreenToClient(&ClientPt); //客户坐标 MoveWindow(ClientPt.x,ClientPt.y,CltRect.Width(),CltRect.Height());//移动
CButton::OnMouseMove(nFlags, point);
}