#include<windows.h>
#include "resource.h" LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM); int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstace, PSTR szCmdLine, int iCmdShow)
{
static TCHAR szAppName[] = TEXT ("stick1");
HWND hwnd;
MSG msg;
WNDCLASS wndclass; wndclass.style = CS_HREDRAW | CS_VREDRAW ;
wndclass.lpfnWndProc = WndProc;
wndclass.cbClsExtra = ;
wndclass.cbWndExtra = ;
wndclass.hInstance = hInstance;
wndclass.hIcon = LoadIcon (hInstance, MAKEINTRESOURCE(IDI_ICON1));
wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wndclass.lpszMenuName = NULL;
wndclass.lpszClassName = szAppName; if(!RegisterClass(&wndclass))
{
MessageBox(NULL, TEXT ("The Program requires Windows NT!"), szAppName, MB_ICONERROR);
return ;
} 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, , ))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
} LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
static HBITMAP hBitmap;
static int cxClient, cyClient, cxSource, cySource;
BITMAP bitmap;
HDC hdc,hdcMem;
HINSTANCE hInstance;
int x,y,mx,my;
PAINTSTRUCT ps; switch(message)
{
case WM_CREATE:
hInstance = ((LPCREATESTRUCT) lParam) ->hInstance; hBitmap = LoadBitmap(hInstance,MAKEINTRESOURCE(IDM_BITMAP)/*TEXT("bitmap1")*/);
GetObject(hBitmap,sizeof(BITMAP),&bitmap); cxSource = bitmap.bmWidth;
cySource = bitmap.bmHeight/; return ;
case WM_SIZE:
cxClient = LOWORD (lParam);
cyClient = HIWORD (lParam);
return ;
case WM_PAINT:
hdc = BeginPaint(hwnd , &ps); hdcMem = CreateCompatibleDC(hdc);
SelectObject(hdcMem,hBitmap); for(y = ; y < cyClient - ; y += cySource)
{
for(x = ; x < cxClient - ; x += cxSource)
{
BitBlt(hdc,x,y,cxSource,cySource,hdcMem,,,SRCCOPY);
}
}
DeleteDC(hdcMem);
EndPaint(hwnd, &ps);
return ;
case WM_LBUTTONDOWN:
hdc = GetDC(hwnd); mx = LOWORD(lParam);
my = HIWORD(lParam); hdcMem = CreateCompatibleDC(hdc);
SelectObject(hdcMem, hBitmap); BitBlt(hdc, mx, my, cxSource, cySource, hdcMem, , cySource, SRCCOPY); DeleteDC(hdcMem);
ReleaseDC(hwnd, hdc);
return ;
case WM_DESTROY:
DeleteObject(hBitmap);
PostQuitMessage();
return ;
}
return DefWindowProc(hwnd, message, wParam, lParam);
}

最新文章

  1. 如何理解和熟练运用js中的call及apply?
  2. 试听笔记:技术狂人nodejs
  3. poj 3463 最短路与次短路&amp;&amp;统计个数
  4. jmeter之调度器配置
  5. Oracle DB SQL 性能分析器
  6. ajax简单后台交互-我们到底能走多远系列(28)
  7. **【ci框架】PHP的CI框架集成Smarty的最佳方式
  8. light oj 1116 - Ekka Dokka
  9. (六)backbone - API学习 - Backbone路由
  10. 搭建Ubuntu12.04交叉编译服务器
  11. STM32F10x -- 利用IIC协议操作AT24C02
  12. Node.js_express_route 路由
  13. Android系统中是否开启定位及定位模式的判断
  14. 常见的php模式
  15. hdu1535 Invitation Cards 最短路
  16. J2SE 5.0-memory management whitepaper--delete
  17. COUNT DISTINCT ROW_NUMBER DENSE_RANK 以及对COUNT去重(非PARTITION)
  18. Alien::BatToExeConverter 模块应用
  19. 【SSH网上商城项目实战22】获取银行图标以及支付页面的显示
  20. Java跨域问题的处理

热门文章

  1. JVM学习之实例分析JVM安全体系
  2. Apache新版配置虚拟主机的注意事项
  3. 通过 IP 访问谷歌
  4. 黑马程序员--&#160;C语言变量作用域与代码块
  5. Java定时器:Timer
  6. Python核心编程笔记---- input 与raw_input
  7. 升级linux内核(2.6.32-&gt;3.10.81),安装docker
  8. Effective C++ 条款11
  9. VBA 开发学习--基础语法
  10. JS学习笔记(二)运算符和流程控制语句