外部加载资源来画图

来源:互联网 发布:mac的子弹头 编辑:程序博客网 时间:2024/05/29 18:42
//###################################
//http://www.cctry.com/    VC驿站
//>>>>>>歌帝圣尊 2010.12.13
//这一节讲解的是从外部加载资源来画图
//###################################
#include<windows.h>


//全局变量
TCHAR szWindowClass[] = "演示程序";
TCHAR szWindowTitle[] = "胡歌——李逍遥";
TCHAR szPicturePath[] = "Picture\\Pic00.bmp";


//窗口过程函数
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam , LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
static HBITMAP hbmp;
HDC hdcMem;
staticBITMAP bitmap;


switch(msg)
{
//WM_CREATE消息响应
case WM_CREATE:
{
hbmp = (HBITMAP)LoadImage
(
NULL,
szPicturePath,//加载图片名称或图片路径
IMAGE_BITMAP,//为BMP格式
0,
0,
LR_LOADFROMFILE|LR_CREATEDIBSECTION
);


GetObject(hbmp, sizeof(BITMAP), &bitmap);
return 0;
}


//WM_DESTROY消息响应
case WM_DESTROY:
{
DeleteObject(hbmp);
PostQuitMessage(0);
return 0;
}


case WM_PAINT:
{
hdc = BeginPaint(hWnd, &ps);


//创建兼容设备
hdcMem =CreateCompatibleDC(hdc);


//加载位图到兼容设备
SelectObject(hdcMem, hbmp);


//位块传输
BitBlt(hdc, 0, 0, bitmap.bmWidth, bitmap.bmHeight, hdcMem, 0, 0, SRCCOPY);


DeleteDC(hdcMem);
EndPaint(hWnd, &ps);
return 0;
}


//不关心的消息使用缺省处理
default:
return DefWindowProc(hWnd, msg, wParam, lParam);
}
}


int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE, LPTSTR lpCmdLine, int nCmdShow)
{
//填充窗口类
WNDCLASSEX wcex;
wcex.cbSize= sizeof(WNDCLASSEX);
wcex.style= CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc= (WNDPROC)WndProc;
wcex.cbClsExtra= 0;
wcex.cbWndExtra= 0;
wcex.hInstance= hInstance;
wcex.hIcon= NULL;
wcex.hCursor= LoadCursor(NULL,IDC_ARROW);
wcex.hbrBackground= (HBRUSH)(COLOR_WINDOW +1);
wcex.lpszMenuName= NULL;
wcex.lpszClassName= szWindowClass;
wcex.hIconSm= NULL;


//注册窗口类
RegisterClassEx(&wcex);


//创建窗口
HWND hWnd = CreateWindowEx(
0, 
szWindowClass,
szWindowTitle,
WS_OVERLAPPEDWINDOW^WS_MAXIMIZEBOX^WS_THICKFRAME,
CW_USEDEFAULT,
0, 
512,
384,
HWND_DESKTOP,
NULL,
hInstance,
NULL);


//创建窗口失败
if(!hWnd)
return 0;


//显示并更新窗口
ShowWindow(hWnd,nCmdShow);
UpdateWindow(hWnd);


//设置消息循环
MSG msg;
while(GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}


return 1;
}
原创粉丝点击