1. Trang chủ
  2. » Công Nghệ Thông Tin

Tài liệu Chương 3: Một số kỹ thuật trong lập trình trên .Net CF docx

16 469 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Một số kỹ thuật trong lập trình trên .Net CF
Tác giả ThS. Trần Minh Triết
Trường học Đại học Khoa học Tự nhiên, ĐHQG-HCM
Chuyên ngành Information Technology
Thể loại Tài liệu
Định dạng
Số trang 16
Dung lượng 631 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

2 Xác định đường dẫn của Ứng dụng Xác định tự động đường dẫn của ứng dụng runtime m_startuppath = System.Reflection.Assembly.GetExecutingAssembly.. GetModules [0].Name, "" ; m_BmBanCo

Trang 1

Chương 3:

Một số kỹ thuật trong lập trình trên Net CF

ThS Trần Minh Triết Đại học Khoa học Tự nhiên, ĐHQG-HCM

Khoa Công Nghệ Thông Tin

Trang 2

2

Xác định đường dẫn của Ứng dụng

Xác định tự động đường dẫn của ứng dụng (runtime)

m_startuppath =

System.Reflection.Assembly.GetExecutingAssembly()

GetModules()[0].FullyQualifiedName;

m_startuppath = m_startuppath.Replace(

System.Reflection.Assembly.GetExecutingAssembly()

GetModules()[0].Name, "" );

m_BmBanCo =new Bitmap

(m_startuppath+"BanCoPocketPC.jpg");

m_BmQuanCo=new Bitmap

(m_startuppath+"QuanCoPocKetPC.bmp");

m_BmChonCo=new Bitmap

(m_startuppath+"ChonQuanPocketPC.bmp");

m_startuppath =

System.Reflection.Assembly GetExecutingAssembly ()

GetModules ()[0].FullyQualifiedName;

m_startuppath = m_startuppath Replace (

System.Reflection.Assembly GetExecutingAssembly ()

GetModules ()[0].Name, "" );

m_BmBanCo = new Bitmap

(m_startuppath+" BanCoPocketPC.jpg ");

m_BmQuanCo= new Bitmap

(m_startuppath+" QuanCoPocKetPC.bmp ");

m_BmChonCo= new Bitmap

(m_startuppath+" ChonQuanPocketPC.bmp ");

Lấy danh sách các Assembly

Lấy danh sách các Assembly

Xóa tên file, chỉ giữ lại đường dẫn

Xóa tên file, chỉ giữ lại đường dẫn

Trọn vẹn tên và đường dẫn của

module

Trọn vẹn tên và đường dẫn của

module

Tên của module

Trang 3

Xác định đường dẫn của Ứng dụng

Sử dụng đường dẫn tuyệt đối (hard-code)!!!

Phải biết trước đường dẫn (tuyệt đối) sẽ chứa chương

trình thực thi

public class Constant

{

public static int LEFT = 24;

public static int TOP = 24;

public static string AppPath

= @"\Program Files\MummyMaze\";

public static string ImagesPath

= @"\Program Files\MummyMaze\";

}

public class Constant

{

public static int LEFT = 24;

public static int TOP = 24;

public static string AppPath

= @" \Program Files\MummyMaze\ ";

public static string ImagesPath

= @" \Program Files\MummyMaze\ ";

}

Trang 4

4

Load ảnh từ file

Có thể load các ảnh từ file vào đối tượng kiểu Bitmap

Các định dạng ảnh thông dụng mà WinCE hỗ trợ (BMP,

JPG, PNG…)

Bitmap RedMummyBmp =

new Bitmap(Constant.ImagesPath+"redmummy.bmp");

Bitmap HelloBmp =

new Bitmap(Constant.ImagesPath+"hello.jpg");

Bitmap RedMummyBmp =

new Bitmap ( Constant ImagesPath+" redmummy.bmp ");

Bitmap HelloBmp =

new Bitmap ( Constant ImagesPath+" hello.jpg ");

Trang 5

Sử dụng Timer (1)

Khai báo biến thuộc kiểu System.Windows.Forms.Timer

Khởi tạo biến Timer

private System.Windows.Forms.Timer MyTimer;

private System.Windows.Forms.Timer MyTimer;

private void InitializeComponent()

{

this.MyTimer = new System.Windows.Forms.Timer();

this.MyTimer.Interval = 300; // 300 ms

this.MyTimer.Tick +=

new System.EventHandler(this.MyTimer_Func);

}

private void InitializeComponent ()

{

this.MyTimer = new System.Windows.Forms.Timer ();

this.MyTimer.Interval = 300; // 300 ms

this.MyTimer Tick +=

new System EventHandler (this MyTimer_Func );

xử lý Timer

Tên hàm

xử lý Timer

Trang 6

6

Sử dụng Timer (2)

Hàm xử lý mỗi khi xảy ra biến cố timer

private void MyTimer_Func

(object sender, System.EventArgs e)

{

flag = 1 - flag;

pictureBox1.Image = CompleteBmp[flag];

pictureBox1.Refresh();

}

private void MyTimer_Func

( object sender, System.EventArgs e)

{

flag = 1 - flag;

pictureBox1.Image = CompleteBmp[flag];

pictureBox1 Refresh ();

}

Trang 7

Sử dụng Timer (3)

Kích hoạt timer

Tạm dừng timer

Hủy bỏ timer

MyTimer.Enabled = true;

MyTimer.Enabled = true ;

MyTimer.Enabled = false;

MyTimer.Enabled = false;

MyTimer.Dispose();

MyTimer Dispose ();

Trang 8

8

Sử dụng Graphics

public void Draw(Graphics g)

{

ImageAttributes imgatt = new ImageAttributes();

imgatt.SetColorKey

(Constant.BkColor, Constant.BkColor);

g.DrawImage(

HumanBmp,

new Rectangle(left, top, width, height),

Bmp_x*Constant.WidthSquare_pixel,

Bmp_y*Constant.WidthSquare_pixel,

Constant.WidthSquare_pixel,

Constant.WidthSquare_pixel,

GraphicsUnit.Pixel, imgatt);

}

public void Draw ( Graphics g)

{

ImageAttributes imgatt = new ImageAttributes ();

imgatt SetColorKey

( Constant BkColor, Constant BkColor);

g DrawImage (

HumanBmp,

new Rectangle (left, top, width, height),

Bmp_x*Constant.WidthSquare_pixel,

Bmp_y*Constant.WidthSquare_pixel,

Constant.WidthSquare_pixel,

Constant.WidthSquare_pixel,

GraphicsUnit Pixel, imgatt);

}

Trang 9

Sử dụng Thread

Khai báo biến kiểu Thread

Tạo thread và khởi động thread

Hàm xử lý chính của Thread

private void PlaySound()

{ SoundThread =

new Thread(new ThreadStart(PlaySoundFunc));

SoundThread.Priority = ThreadPriority.Highest;

SoundThread.Start(); // Bắt đầu thread

}

private void PlaySound ()

{ SoundThread =

new Thread ( new ThreadStart ( PlaySoundFunc ));

SoundThread.Priority = ThreadPriority Highest ;

SoundThread Start (); // Bắt đầu thread

}

private Thread SoundThread;

private Thread SoundThread;

private void PlaySoundFunc()

private void PlaySoundFunc ()

{ Sound PlayMusic ( Constant AppPath + " music.wav ");

Tên hàm

xử lý chính của Thread

Tên hàm

xử lý chính của Thread

Trang 10

10

Xử lý Âm thanh (1)

public class Sound

{

[DllImport("WinMM.dll",

EntryPoint="PlaySound",CharSet=CharSet.Auto)]

private static extern int PlaySoundWin32

(string pszSound, int hmod, int fdwSound) ;

[DllImport("CoreDll.dll",

EntryPoint="PlaySound",CharSet=CharSet.Auto)]

private static extern int PlaySoundWinCE

(string pszSound, int hmod, int fdwSound) ;

public class Sound

{

[ DllImport (" WinMM.dll ",

EntryPoint =" PlaySound ", CharSet = CharSet Auto)]

private static extern int PlaySoundWin32

( string pszSound, int hmod, int fdwSound) ;

[ DllImport (" CoreDll.dll ",

EntryPoint =" PlaySound ", CharSet = CharSet Auto)]

private static extern int PlaySoundWinCE

( string pszSound, int hmod, int fdwSound) ;

Trang 11

Xử lý Âm thanh (2)

private enum SND

{

SND_SYNC = 0x0000,

/* play synchronously (default) */

SND_ASYNC = 0x0001,

/* play asynchronously */

SND_NODEFAULT = 0x0002,

/* silence (!default) if sound not found */

SND_MEMORY= 0x0004,

/* pszSound points to a memory file */

SND_LOOP = 0x0008,

private enum SND

{

SND_SYNC = 0x0000 ,

/* play synchronously (default) */

SND_ASYNC = 0x0001,

/* play asynchronously */

SND_NODEFAULT = 0x0002,

/* silence (!default) if sound not found */

SND_MEMORY = 0x0004,

/* pszSound points to a memory file */

SND_LOOP = 0x0008,

/* loop the sound until next sndPlaySound */

Trang 12

12

Xử lý Âm thanh (3)

private enum SND

{

SND_NOSTOP= 0x0010,

/* don't stop any currently playing sound */

SND_NOWAIT= 0x00002000,

/* don't wait if the driver is busy */

SND_ALIAS = 0x00010000,

/* name is a registry alias */

SND_ALIAS_ID = 0x00110000,

/* alias is a predefined ID */

}

private enum SND

{

SND_NOSTOP = 0x0010,

/* don't stop any currently playing sound */

SND_NOWAIT = 0x00002000,

/* don't wait if the driver is busy */

SND_ALIAS = 0x00010000,

/* name is a registry alias */

SND_ALIAS_ID = 0x00110000,

/* alias is a predefined ID */

}

Trang 13

Xử lý Âm thanh (4)

private enum SND

{

SND_FILENAME = 0x00020000,

/* name is file name */

SND_RESOURCE = 0x00040004,

/* name is resource name or atom */

SND_PURGE = 0x0040,

/* purge non-static events for task */

SND_APPLICATION = 0x0080

/* look for application specific association */

};

private enum SND

{

SND_FILENAME = 0x00020000,

/* name is file name */

SND_RESOURCE = 0x00040004,

/* name is resource name or atom */

SND_PURGE = 0x0040,

/* purge non-static events for task */

SND_APPLICATION = 0x0080

/* look for application specific association */

};

Trang 14

14

Xử lý Âm thanh (5)

private const int Win32 = 0 ;

private const int WinCE = 1 ;

private static int Windows = -1 ;

public static void PlayMusic(string pszMusic)

{

int flags =

(int)(SND.SND_ASYNC|SND.SND_FILENAME|

SND.SND_NOWAIT|SND.SND_LOOP) ;

sndPlaySound(pszMusic, flags) ;

}

private const int Win32 = 0 ;

private const int WinCE = 1 ;

private static int Windows = -1 ;

public static void PlayMusic ( string pszMusic)

{

int flags =

( int )( SND SND_ASYNC | SND SND_FILENAME |

SND SND_NOWAIT | SND SND_LOOP ) ;

sndPlaySound (pszMusic, flags) ;

}

Trang 15

Xử lý Âm thanh (6)

private static void sndPlaySound

(string pszSound, int flags)

{

switch ( Windows )

{

case Win32 :

PlaySoundWin32(pszSound, 0, flags) ; break ;

case WinCE :

PlaySoundWinCE(pszSound, 0, flags) ; break ;

private static void sndPlaySound

( string pszSound, int flags)

{

switch ( Windows )

{

case Win32 :

PlaySoundWin32 (pszSound, 0, flags) ;

break ;

case WinCE :

PlaySoundWinCE (pszSound, 0, flags) ;

break ;

Trang 16

16

Xử lý Âm thanh (7)

default :

try // Play if in Win32 platform

{ PlaySoundWin32(pszSound, 0, flags) ;

Windows = Win32 ; }

catch ( Exception )

{ try // Play if in WinCE platform

{ PlaySoundWinCE(pszSound, 0, flags) ;

Windows = WinCE ; }

catch ( Exception )

{

}

}

break ;

} // switch

}

default :

try // Play if in Win32 platform

{ PlaySoundWin32 (pszSound, 0, flags) ;

Windows = Win32 ; }

catch ( Exception )

{ try // Play if in WinCE platform

{ PlaySoundWinCE (pszSound, 0, flags) ;

Windows = WinCE ; }

catch ( Exception )

{

}

}

break ;

} // switch

}

Ngày đăng: 13/12/2013, 13:15

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w