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

加入音乐:
 
静态库:#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);

你可能感兴趣的:(windows,音乐)