回复:wincc6.0 C脚本实现类似VC++中打开公用对话框的问题.(本质上需要实现配方数据存取)

城外之人

版主

  • 帖子

    8685
  • 精华

    18
  • 被关注

    218

论坛等级:至圣

注册时间:2003-09-23

钻石 钻石 如何晋级?

发布于 2005-07-14 08:33:58

0楼

在按钮鼠标动作中,加入以下代码(可以直接声明结构):
//#include "commdlg.h"
typedef struct tagOFN {
DWORD lStructSize;
HWND hwndOwner;
HINSTANCE hInstance;
LPCTSTR lpstrFilter;
LPTSTR lpstrCustomFilter;
DWORD nMaxCustFilter;
DWORD nFilterIndex;
LPTSTR lpstrFile;
DWORD nMaxFile;
LPTSTR lpstrFileTitle;
DWORD nMaxFileTitle;
LPCTSTR lpstrInitialDir;
LPCTSTR lpstrTitle;
DWORD Flags;
WORD nFileOffset;
WORD nFileExtension;
LPCTSTR lpstrDefExt;
DWORD lCustData;
DWORD lpfnHook; //LPOFNHOOKPROC lpfnHook;
LPCTSTR lpTemplateName;
} OPENFILENAME, * LPOPENFILENAME;

#pragma code("comdlg32.dll")
BOOL GetOpenFileNameA(LPOPENFILENAME lpofn);
#pragma code()

OPENFILENAME OpenFile;
char szFile[MAX_PATH] = '\0';
char sRet[MAX_PATH];
HWND Handle = NULL;
BOOL bRet = FALSE;

Handle=FindWindow(NULL,"WinCC-Runtime - ");

OpenFile.lStructSize = sizeof(OPENFILENAME);
OpenFile.hwndOwner = Handle;
OpenFile.lpstrFilter = "Text Files\0*.txt;*.ini\0";
OpenFile.nFilterIndex = 1;
OpenFile.lpstrFile = szFile;
OpenFile.nMaxFile = MAX_PATH - 1;
OpenFile.lpstrFileTitle = szFile;
OpenFile.nMaxFileTitle = OpenFile.nMaxFile;
OpenFile.lpstrInitialDir = "D:\\";
//OpenFile.lpstrTitle = "Use the Comdlg API not the OCX";//不设置时默认标题为"打开"
OpenFile.Flags = 0;

bRet = GetOpenFileNameA(&OpenFile);
if (bRet)
sprintf(sRet,"The User Chose %s",OpenFile.lpstrFile);
else
strcpy(sRet,"The User pressed the Cancel Button.");

SetText(lpszPictureName,"StaticText1",sRet); //画面中一个静态文本,用作显示你的选择
}
无论成与败,无论甜与苦,我还是我。
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC WinCC / Panel

共有32566条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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