C脚本 拖动控件位置

 调用Wincc WebBrower control 这个控件,在运行时怎样实现用鼠标随意拖动位置,和改变其大小

问题补充:
如图中一样,这个控件无法移动和改变大小,怎样实现这两个功能呢

图片说明:

C脚本 拖动控件位置   

最佳答案

给你一个移动对象的项目函数。
该函数先将对象移动到画面之外,比如,画面宽度为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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日 上午11:26
下一篇 2021年7月5日 上午11:26

相关推荐

发表回复

登录后才能评论