CreatePatternBrush创建位图画刷
2016-11-30 22:18
232 查看
/* ------------------------------------------------------------------- 创建位图画刷 Author:邱于涵 Time:2016年11月30日22:17:00 --------------------------------------------------------------------*/ #include <windows.h> #include"resource1.h" HINSTANCE globalinstance; LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { globalinstance = hInstance; static TCHAR szAppName[] = TEXT("MyWindows"); HWND hwnd; MSG msg; WNDCLASS wndclass; wndclass.style = CS_HREDRAW | CS_VREDRAW; wndclass.lpfnWndProc = WndProc; wndclass.cbClsExtra = 0; wndclass.cbWndExtra = 0; wndclass.hInstance = hInstance; wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION); wndclass.hCursor = LoadCursor(NULL, IDC_ARROW); wndclass.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);//设置黑色画刷为背景 wndclass.lpszMenuName = NULL; wndclass.lpszClassName = szAppName; if (!RegisterClass(&wndclass)) { MessageBox(NULL, TEXT("这个程序需要在 Windows NT 才能执行!"), szAppName, MB_ICONERROR); return 0; } hwnd = CreateWindow(szAppName, TEXT("涵涵工作室"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL); ShowWindow(hwnd, iCmdShow); UpdateWindow(hwnd); while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; } LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { static HDC hdc; PAINTSTRUCT ps; static RECT rect; static HPEN hCurrentPen; static HPEN hPrePen; HBITMAP bitmap; HBRUSH brush; HBRUSH preBrush; switch (message) { case WM_SIZE: GetClientRect(hwnd, &rect); break; case WM_PAINT: hdc = GetDC(hwnd); // LoadBitmap 第二个参数传入BITMAP的资源名称 //MAKEINTRESOURCE传入 资源ID(资源ID子资源视图下面的杂项可以设置) 返回资源名称字符串 bitmap = LoadBitmap(globalinstance, MAKEINTRESOURCE(IDB_BITMAP2)); brush= CreatePatternBrush(bitmap); preBrush=SelectObject(hdc, brush); Rectangle(hdc, 100, 100, 500, 500); //SetROP2(hdc, R2_NOT); SelectObject(hdc, preBrush);//还原 DeleteObject(brush);//删除 ReleaseDC(hwnd, hdc); return 0; case WM_DESTROY: PostQuitMessage(0); return 0; } return DefWindowProc(hwnd, message, wParam, lParam); }
相关文章推荐
- 创建位图画刷(CreatePatternBrush)
- 创建位图画刷(CreatePatternBrush)
- 创建位图画刷(CreatePatternBrush)
- 使用CreatePatternBrush,用位图填充一个矩形区域,出现交错问题??
- WinAPI: CreatePatternBrush - 建立位图画刷
- opencv(九)之轨迹条条创建和使用createTrackbar
- JavaScript对象系统深入剖析3-创建对象Object.Create
- C++ pthread_create 线程创建与传参(struct)
- 使用proc_create创建proc文件
- 根据表名 生成Create创建脚本
- 浅析proc文件系统的创建和create_proc_read_entry函数的具体实现
- oracle创建用户ORA-01045:user lacks CREATE SESSION privilege;
- 【Linux学习】pthread_create主线程与创建的新线程之间退出关系
- 登陆vsftp创建文件553 Could not create file错误的解决方法
- 用sp_OACreate 储存过程创建目录
- class_create(),device_create自动创建设备文件结点
- CreateSolidBrush用法
- PsCreateSystemThread创建系统线程
- Activator.CreateInstance(Type type)方法创建对象和Expression Tree创建对象性能的比较(终结版)
- create_proc_read_entry(), create_proc_entry() | 创建 /proc 文件