使用Flash彻底美化你的程序

使用Flash彻底美化你的程序vc++技术

曾经在 VCKbase VC 知识库)网站看到过一篇关于 Flash 的文章,叫做 VC 中使用 Flash 美化你的程序 ,文章中介绍的是使用 Flash 控件在对话框程序中播放 Flash 文件。由于以前的工作需要曾经接触过使用 Scoket 通信在 VC Exe 程序和 Flash 程序中通信的相关技术。在这里介绍给大家。相比上面的那篇文章,其有一下有点:

1、   界面上更加优美。所有的界面部分都是直接使用 Flash

2、   所能完成的功能更加完备。几乎所有能在 VC 的程序中能使用的功能都可以使用。

要做到以上两点所要做的工作也是很简单的,使用的技术也很简单。只要求以下几点:

1、   会使用简单的 Flash 编辑工具。会写简单的 Flash Script 脚本。

2、   Socket 编程的相关知识。

程序的原理就是: VC 程序 ( 对话框程序 ) 在启动以后最小化的任务栏,并建立一个 Socket Server 进行侦听,在建立完 Socket 和设置好相关的处理函数以后,启动编译为 Exe Flash 程序, Flash 程序通过 Socket VC 程序建立连接,将 Flash 界面上的操作转换为 Socket 通信,让 VC 程序处理完成以后将结果返回给 Flash 程序。其简单的步骤为:

1、   VC 程序端(或者其他任何编程语言的程序): 建立一个对话框程序,在 APP 类的 InitInstance () 函数中添加 Scoket 初始化:

if (! AfxSocketInit

())

 

 

       {

 

 

              AfxMessageBox ( IDP_SOCKETS_INIT_FAILED

);

 

 

              return FALSE

;

 

 

}

 

 

2、   在对话框类的 OnInitDialog() 函数中添加处理界面部分的程序段:

 

 

MoveWindow (0,0,0,0);  // 将对话框程序界面改变为 0

 

 

ShowWindow ( SW_SHOWMINIMIZED );   // 使界面最小化到任务栏

 

 

OnOK (); // 调用对话框的 OnOK 函数

 

 

3、   在对话框类的 OnOK () 函数中建立 Socket server 并侦听:

 

 

WSADATA

wsaData;

 

 

     int

iErrorCode;

 

 

    if ( WSAStartup ( MAKEWORD (2,1),&wsaData)) //Windows Sockets DLL

 

 

       {

 

 

                AfxMessageBox ( "Winsock can not initialize." , MB_ICONSTOP

);

 

 

         WSACleanup

();

 

 

                SendMessage ( WM_CLOSE , NULL , NULL ); // 关闭对话框程序

 

 

         return

;

 

 

       }

 

 

 

       //Create server Socket type is SOCK_STREAM

 

 

       ServerSocket = socket ( PF_INET , SOCK_STREAM

,0);   

 

 

    if (ServerSocket == INVALID_SOCKET

)

 

 

       {

 

 

              AfxMessageBox ( " Could not create server Socket. " , MB_ICONSTOP

);

 

 

              SendMessage ( WM_CLOSE , NULL , NULL ); // 关闭对话框程序

 

 

         return

;

 

 

       }

 

 

 

m_sockServerAddr.sin_family = AF_INET

;

 

 

//IP 设置为广播

 

 

    m_sockServerAddr.sin_addr. s_addr = inet_addr ( "127.0.0.1"

);

 

 

       // 使用 9813 端口,自己编程的时候可以随意选择,最好使用 5000 以后的

 

 

    m_sockServerAddr.sin_port = htons

(9813);

 

 

 

// 绑定

Socket

 

 

 

 

    if ( bind (ServerSocket,(LPSOCKADDR)&m_sockServerAddr, sizeof (m_sockServerAddr)) == SOCKET_ERROR ) //

 

 

    {

 

 

              AfxMessageBox ( "Could not bind Server socket." , MB_ICONSTOP

);

 

 

              SendMessage ( WM_CLOSE , NULL , NULL ); // 关闭对话框程序

 

 

        return

;

 

 

       }

 

 

    iErrorCode = WSAAsyncSelect (ServerSocket,m_hWnd, WM_CLIENT_ACCEPT , FD_ACCEPT

);

 

 

    if (iErrorCode == SOCKET_ERROR

)

 

 

       {

 

 

              AfxMessageBox ( "Could not select socket." , MB_ICONSTOP

);

 

 

           SendMessage ( WM_CLOSE , NULL , NULL ); // 关闭对话框程序

 

 

         return

;

 

 

       }

 

 

 

    if ( listen (ServerSocket,1) == SOCKET_ERROR ) //begin listen client

 

 

       {

 

 

              AfxMessageBox ( "Could not listen." , MB_ICONSTOP

);

 

 

              SendMessage ( WM_CLOSE , NULL , NULL

);

 

 

        return

;

 

 

       }

 

 

       // 启动 Flash 程序

 

 

       CString

FlashExePath;

 

 

       char

DialogExePath[256];

 

 

   // 获得对话框程序的路径,包含文件名

 

转自:http://hereson.javaeye.com/blog/200694

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值