您的位置:首页 > 其它

使用Flash彻底美化你的程序

2010-09-28 14:14 344 查看

使用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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: