欢迎您来到 数字平台。 您尚未登录。[登录] [注册新用户]
当前位置: 论坛首页 / 栏目 产品与服务 / 文章 17

点击:16588

[顶层访客留言] [回复顶层(需要先登录)] [表状] [详细]
[回复留言] [回复(需要先登录)] [引用(需要先登录)]普通文章第 1 楼
文章id: 17
如何开发一个符合ZTRANS连接/发送接口的程序

作者: xietao


一、运行机制

ZTRANS的连接/发送接口, 运行机制解释如下:

1) 连接

ZTRANS软件的连接功能,是希望和另外一个软件软件的Windows API窗口句柄(handle)建立连接关系,也就是记载下这个窗口的句柄,在后来的发送功能中,就能向这个窗口发送MARC记录文本了。

ZTRANS是通过连接过程中鼠标左键按下时的光标位置来确定要连接的窗口的句柄的。因此,准备要开发的和ZTRANS接口的软件,需要设计一个Windows窗口(以下称为接收窗口),要有形状,方便用户通过ZTRANS连接操作来点取。

    

2) 发送数据

ZTRANS软件在发送数据时,先在Windows系统剪贴板中准备好MARC数据。数据格式是24字符的头标区后面紧接若干字段内容。每个字段有字段结束符(ASCII码30),子字段符号为ASCII码31,记录末尾还可能有一个记录结束符(ASCII码29)。要和ZTRANS接口的软件,必须能够处理这样的格式。

然后,ZTRANS软件对接收窗口发送如下消息:

::SendMessage( m_hwndLinkedMARCCtrl, GEM_SELECTALL, 0, 0);

这是为了全选dt1000 MARC接受窗口的内容,为paste做好准备。可以不理会此消息。

::SendMessage( m_hwndLinkedMARCCtrl, WM_PASTE, 0, 0);

这是Windows通用消息,目的是要求接收窗口从剪贴板中paste内容。

注:m_hwndLinkedMARCCtrl是从ZTRANS角度看去的接收窗口句柄。

以上介绍了操作原理。如果要开发能够接收ZTRANS发送过来的MARC数据的窗口,必须至少能够处理WM_PASTE消息。其实处理过程也很简单,在收到这个消息后,直接从剪贴板中取出数据即可。至于,这个接收窗口是否需要显示出MARC数据,或者具有编辑MARC数据的功能,就不强求了。

二、示范代码

本文后面的“资源”中,是一个VC++ 7.0下的示范代码。

其中关键段落,在于为view类加入的WM_PASTE消息处理模块:

LRESULT CMarcRecieverView::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)

{

    switch (message)

    {

    case WM_PASTE:

        {

            HGLOBAL hClipData;

            if (!::OpenClipboard(this->m_hWnd)) break;

            hClipData = GetClipboardData(CF_TEXT);

            if (hClipData == NULL) {

                CloseClipboard();

                return FALSE;

            }

            LPSTR p = (LPSTR)::GlobalLock(hClipData);

            MessageBox(p);    // p里面就是MARC数据,根据需要编写处理代码即可

            ::GlobalUnlock(hClipData);

            CloseClipboard();

        }

        return TRUE;

    }

    return CEditView::WindowProc(message, wParam, lParam);

}

其实,这个函数完全可以从代码中删除,这样就会自动用CEdit类的消息处理函数来处理WM_PASSTE。而我们知道,这样会把MARC记录当作一个字符串插入在edit窗口当前位置。

===

如有任何问题,欢迎在本后跟贴垂询。



资源:

-- ID: 0 文件名: marcreciever.zip 尺寸: 29152 最后修改时间: --
marcreciever.zip [下载] 警告:某些文件下载后,如打开(或执行),可能危害您的计算机安全,请谨慎行事。


发表时间: 2005-09-27 09:53:13
最后修改时间: 2005-09-27 10:50:52



  • 普通文章 如何开发一个符合ZTRANS连接/发送接口的程序 xietao 2005-09-27 09:53:13[点击:16588]
  • 普通文章 求dp1db SQL SERVER版 liujp 2005-10-08 16:37:21 (ID:18) [点击:2473]
  •  

    在线用户
    访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客 (我自己)   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客
    当前栏目在线用户数 30, 总在线用户数 32