请问各位大侠:
本人在WINCC界面/对象选项板/标准/窗口对象里面添加了一个圆形按钮,需要按鼠标动左键动作时,弹出一个询问框“你确认要开机吗?”,选择“是”,将变量"NewTag"设定为1,选择“否”,不对变量"NewTag"进行设定。
现在我的问题是:WINCC激活后,第一次操作在该按钮时,询问框会跳到窗口下方,如果画面是全屏、最大化的话,该询问框根本看不到,请问各位大侠,这是什么原因啊?
我的C脚本如下:
HWND hwnd = NULL;
int iRet;
hwnd = FindWindow(NULL,"wincc c-course");
iRet = MessageBox(hwnd,"你确认要开机吗?","询问框", MB_YESNO| MB_ICONQUESTION| MB_APPLMODAL);
printf("\r\nExample 2\r\n");
if (iRet == IDYES)
{
printf("user selected YES But ton \r\n ");
SetTagBit("NewTag",1); //Return-Type: BOOL
}
else// if (iRet == IDNO)
{
printf("user selected NO But ton \r\n ");
}
}
最佳答案
句柄获取错了!
hwnd = FindWindow(NULL,"wincc c-course");
改成
hwnd = FindWindow(NULL,"WinCC-Runtime - "); //运行语言为英文
hwnd = FindWindow(NULL,"WinCC-运行系统 - "); //运行语言为中文
通过设置父窗口句柄可是MessageBox为模式对话框。
----------------------------
另外,还可以为MessageBox添加参数MB_SYSTEMMODAL使其置顶:
iRet = MessageBox(NULL,"你确认要开机吗?","询问框", MB_YESNO|MB_ICONQUESTION|MB_SETFOREGROUND|MB_SYSTEMMODAL);
-----------------------------
楼主可以对比一下这两种方法的区别。
提问者对于答案的评价:
谢谢你,通过了。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc275376.html