回复:为什么窗口的大小不随我心意那,有图有真像

Zaxife

  • 帖子

    2450
  • 精华

    31
  • 被关注

    78

论坛等级:至圣

注册时间:2008-07-24

普通 普通 如何晋级?

发布于 2017-09-09 12:50:59

6楼

展开查看
以下是引用沙鲁在2017-09-05 13:45:17的发言 >4楼

首先,非常感谢教授知识;

其次,基本意思我明白了,简单设置窗口尺寸是无法放大窗口的,通过最大化才能实现窗口放大。

最后,在实际操作中,我就不会了,我的wincc基础为0,不知道语句都写哪,也不知道怎么用。

总之,还是非常感谢您。

以下是引用Zaxife在2017-09-04 19:43:45的发言 >3楼:额,想要实现这种效...

引用3楼详细内容:

额,想要实现这种效果,又是一个强迫症...

做法说起来很简单,登录成功后直接执行C脚本控制程序窗口最大化。是控制程序窗口最大化而不是简单的更改画面窗口大小。

控制程序窗口最大化,需要先用函数hWnd=FindWindow(NULL, "WinCC-运行系统")根据WinCC的窗口标题查找到窗口的句柄,再用PostMessage(hWnd,WM_SYSCOMMAND, SC_MAXIMIZE,0)最大化窗口。当然,FindWindow的窗口标题必须跟当前WinCC的窗口标题一致。


经过测试,完全可以实现切换WinCC程序窗口最大化,下面是C脚本,可以选用不同的SC_xxx来实现最小化、最大化、还原这三个功能。(直接把代码放到按钮C脚本中测试即可)


#define WM_SYSCOMMAND 274

#define SC_MINIMIZE 0xF020

#define SC_MAXIMIZE 0xF030

#define SC_RESTORE 0xF120


HWND hWnd;

BOOL a;

hWnd = FindWindow(NULL,"WinCC-运行系统 - ");

if (hWnd){

    a = PostMessage(hWnd, WM_SYSCOMMAND , SC_MAXIMIZE , 0);

}


至于要移动到屏幕的任意位置,任意高、宽,则用 a = MoveWindow(hWnd ,100,100,1024,768,TRUE);

参数分别是:窗口句柄、左上角坐标x、左上角坐标y、宽度、高度、不明。

#include "apdefap.h"

void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y)

{

  #pragma code("useadmin.dll")

  #include "PWRT_API.H" 

  #pragma code() 

 

  #define WM_SYSCOMMAND 274

  #define SC_MINIMIZE 0xF020

  #define SC_MAXIMIZE 0xF030

  #define SC_RESTORE 0xF120

  HWND hWnd;

  BOOL a;


 if (strcmp(GetTagChar("@CurrentUser"),"")==0)

  {

    MessageBox (NULL, "请先登录用户!" , "提示", MB_ICONEXCLAMATION| MB_SYSTEMMODAL );

  }

  else

  {

    hWnd = FindWindow(NULL,"WinCC-运行系统 - ");

    if (hWnd){

        //a = PostMessage(hWnd, WM_SYSCOMMAND , SC_MAXIMIZE , 0);

        a = MoveWindow(hWnd ,100,100,1024,900,TRUE);

    }

    OpenPicture("main.Pdl");  

    SetWidth(lpszPictureName,"main.pdl",1024);

    SetHeight(lpszPictureName,"main.pdl",900);

  }

}


红色为添加的代码,黑色为你原先的代码,手头没有WinCC不确定位置正确性。

我不明白你干嘛要#pragma code(),C脚本是直接支持Windows函数的,没必要挂载dll,可以直接用MessageBox()函数。

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC WinCC / Panel

共有32566条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。