/*
CONNECT.C -- Connect-the-Dots Mouse Demo Program
(c) Charles Petzold,1998
*/ #include <Windows.h> #define MAXPOINTS 1000 LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); int WINAPI WinMain( __in HINSTANCE hInstance
, __in_opt HINSTANCE hPrevInstance
, __in LPSTR lpCmdLine
, __in int nShowCmd )
{
static TCHAR szAppName[] = TEXT("Connect");
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(NULL, IDI_APPLICATION);
wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wndclass.lpszMenuName = NULL;
wndclass.lpszClassName = szAppName; if (!RegisterClass(&wndclass))
{
MessageBox(NULL, TEXT("Program requires Windows NT!")
, szAppName, MB_ICONERROR);
return ;
} hwnd = CreateWindow(szAppName, TEXT("Connect-the-Points Mouse Demo")
, WS_OVERLAPPEDWINDOW
, CW_USEDEFAULT, CW_USEDEFAULT
, CW_USEDEFAULT, CW_USEDEFAULT
, NULL, NULL, hInstance, NULL); ShowWindow(hwnd, nShowCmd);
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 POINT pt[MAXPOINTS];
static int iCount;
HDC hdc;
int i, j;
PAINTSTRUCT ps; switch (message)
{
case WM_LBUTTONDOWN:
iCount = ;
InvalidateRect(hwnd, NULL, TRUE);
return ; case WM_MOUSEMOVE:
if (wParam & MK_LBUTTON && iCount < )
{
pt[iCount ].x = LOWORD(lParam);
pt[iCount++].y = HIWORD(lParam); hdc = GetDC(hwnd);
SetPixel(hdc, LOWORD(lParam), HIWORD(lParam), );
ReleaseDC(hwnd, hdc);
}
return ; case WM_LBUTTONUP:
InvalidateRect(hwnd, NULL, FALSE);
return ; case WM_PAINT:
hdc = BeginPaint(hwnd, &ps); SetCursor(LoadCursor(NULL, IDC_WAIT));
ShowCursor(TRUE); for (i = ; i < iCount - ; ++i)
for (j = i + ; j < iCount; ++j)
{
MoveToEx(hdc, pt[i].x, pt[i].y, NULL);
LineTo(hdc, pt[j].x, pt[j].y);
} ShowCursor(FALSE);
SetCursor(LoadCursor(NULL, IDC_ARROW)); EndPaint(hwnd, &ps);
return ; case WM_DESTROY:
PostQuitMessage();
return ;
} return DefWindowProc(hwnd, message, wParam, lParam);
}

CONNECT.C

最新文章

  1. php 常用数组操作
  2. response 设置头的类型 (转)
  3. imshow() displays a white image for a grey image
  4. mysql在linux下不区分大小写
  5. Python 新手常犯错误(第二部分)
  6. java面板
  7. c语言内存模型
  8. Qt ImageProvider 的使用
  9. [UWP]依赖属性2:使用依赖属性
  10. html页面多个a标签点击时显示不同的样式
  11. java 学习笔记 读取配置文件的三种方式
  12. python 抓取金融数据,pandas进行数据分析并可视化系列 (一)
  13. 爬虫利器 Puppeteer 实战
  14. [ASP.NET]ScriptManager控件使用 转载
  15. Java8-1-新特性_Lambda表达式
  16. 基于C++11实现线程池的工作原理
  17. HDU 5299 圆扫描线 + 树上删边
  18. TOM带你玩充电 篇三:15款5号电池横评及选购建议——南孚金霸王小米宜家耐时品胜一个都逃不了
  19. What is Pay Me to Learn——Google Summer of Code 2013
  20. Qt环境配置 + Qt使用教程

热门文章

  1. spring cloud+.net core搭建微服务架构:Api网关(三)
  2. koa执行过程原理分析
  3. MVC5笔记
  4. java——IObufferedReader文件输入输出流
  5. Spring Boot SSL [https]配置例子
  6. JAVA开发者的Golang快速指南
  7. 数据库新秀 postgresql vs mongo 性能PK
  8. Log4j 随笔
  9. Deep learning with Python 学习笔记(8)
  10. vue里碰到 $refs 的问题