调用Wincc WebBrower control 这个控件,在运行时怎样实现用鼠标随意拖动位置,和改变其大小
问题补充:
如图中一样,这个控件无法移动和改变大小,怎样实现这两个功能呢
图片说明:
最佳答案
给你一个移动对象的项目函数。
该函数先将对象移动到画面之外,比如,画面宽度为1000,移到2000位置,再移动到拖动的目标位置。
对象事先放在画面窗口中,其实是移动对象所在画面窗口的位置。
在对象的鼠标按下事件中:
#include "apdefap.h"
void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y)
{
SetTagDWord("Wnd_Login_X",x);
SetTagDWord("Wnd_Login_Y",y);
}
其中:Wnd_X,Wnd_Y是两个内部变量。
在对象的鼠标松开事件中:
#include "apdefap.h"
void OnLButtonUp(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y)
{
int mx=GetTagDWord("Wnd_X");
int my=GetTagDWord("Wnd_Y");
MovePictureWindow(lpszPictureName,GetParentPictureWindow(lpszPictureName),my,my,x,y);
}
项目函数:
void MovePictureWindow(char* lpszPictureName, char* ParentName , int OldX, int OldY, int NewX, int NewY)
{
int px,py;
int dx,dy;
int nGesamt,nTeil;
char picture[255];
strcpy(picture,lpszPictureName);
nGesamt=strlen(lpszPictureName);
nTeil=strlen(strrchr(picture,''''.''''));
strcpy(picture,"");
strncat(picture,lpszPictureName,(nGesamt-nTeil));
px=GetLeft(picture,ParentName);
py=GetTop(picture,ParentName);
dx=OldX-px;
dy=OldY-py;
SetLeft(picture,ParentName,2000);
SetTop(picture,ParentName,NewY-dy);
SetLeft(picture,ParentName,NewX-dx);
}
提问者对于答案的评价:
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc360355.html