您的位置:首页 > 编程语言

win32 API 图片、音乐的加入代码

2010-12-21 20:05 387 查看
加入音乐:

 

静态库:#pragma comment(lib,"winmm.lib") //Windows multimedia library

 playsound("1.wav",NULL,SND_FILENAME | SND_ASYNC);

取得窗口句柄

hInstance = ((LPCREATESTRUCT) lParam)->hInstance ;

加入图片:

但必须是位图,即BMP格式

static HBITMAP hBitmap1,hOldBitmap;//申请图片句柄

static BITMAP bmpinfo;//用于获取BMP图象的信息,如长,宽等

static int cxBitmap,cyBitmap;//用来表示加入图片的长,宽

static HDC hdcBackBuffer;//申请资源空间,也可以说是缓冲区

hBitmap1
=
(HBITMAP)LoadImage(hInstance,"white.BMP",IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION); //
把white.BMP图片加入,且句柄为hBitmap1,在其它地方使用时这个句柄就代表了这个图片

hdcBackBuffer =
CreateCompatibleDC (NULL)
;//申请缓冲

GetObject (hBitmap1, sizeof (BITMAP), &bmpinfo)
;//取得所加入图片的信息,信息存放到bmpinfo指针中

cxBitmap = bmpinfo.bmWidth ;//通过bmpinfo取得图片的宽度和高度

cyBitmap = bmpinfo.bmHeight ;

hOldBitmap=(HBITMAP)SelectObject(hdcBackBuffer,hBitmap1);//把图片放入已申请的缓冲区中,在后面可利用缓冲区中的信息直接画出就可

StretchBlt

(hdc,x1,y1,a1,b1,hdcBackBuffer,0,0,cxBitmap,cyBitmap,SRCCOPY);//其中x1,y1为
图片放到窗口中的位置,a1,b1指放入图片的宽度和高度,hdcBackBuffer为图片缓冲区句柄,即图片。后面四个参数是原图片的位置,宽度,高
度,SRCCOPY将源矩形区域直接拷贝到目标矩形区域


常用信息

case WM_SIZE: /可通过cxClient,cyClient转换为绘图中的参数,则最大化,最小化时显示的图不会消失。

{

cxClient = LOWORD(lParam);

cyClient = HIWORD(lParam);

}

return 0;

case WM_COMMAND://接收菜单信息

switch(LOWORD(wParam))

case WM_KEYDOWN://接收键盘按键信息

switch(wParam)

{

case ....

}

鼠标值存放位置

MouseX = LOWORD(lParam);//存取鼠标横,纵坐标

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