如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
Windows编程之以定时器进行状态报告本章的最后一个程序是我在第五章提到过的。它是一个使用GetPixel函数的好例子。WHATCLR(见程序8-5)显示了鼠标光标下目前图素的RGB颜色。程序8-5WHATCLRWHATCLR.C/*--------------------------------------------------------------------------WHATCLR.C--DisplaysColorUnderCursor(c)CharlesPetzold,1998---------------------------------------------------------------------------*/#include<windows.h>#defineID_TIMER1voidFindWindowSize(int*,int*);LRESULTCALLBACKWndProc(HWND,UINT,WPARAM,LPARAM);intWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,PSTRszCmdLine,intiCmdShow){staticTCHARszAppName[]=TEXT("WhatClr");HWNDhwnd;intcxWindow,cyWindow;MSGmsg;WNDCLASSwndclass;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(WHITE_BRUSH);wndclass.lpszMenuName=NULL;wndclass.lpszClassName=szAppName;if(!RegisterClass(&wndclass)){MessageBox(NULL,TEXT("ThisprogramrequiresWindowsNT!"),szAppName,MB_ICONERROR);return0;}FindWindowSize(&cxWindow,&cyWindow);hwnd=CreateWindow(szAppName,TEXT("WhatColor"),WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_BORDER,CW_USEDEFAULT,CW_USEDEFAULT,cxWindow,cyWindow,NULL,NULL,hInstance,NULL);ShowWindow(hwnd,iCmdShow);UpdateWindow(hwnd);while(GetMessage(&msg,NULL,0,0)){TranslateMessage(&msg);DispatchMessage(&msg);}returnmsg.wParam;}voidFindWindowSize(int*pcxWindow,int*pcyWindow){HDChdcScreen;TEXTMETRICtm;hdcScreen=CreateIC(TEXT("DISPLAY"),NULL,NULL,NULL);GetTextMetrics(hdcScreen,&tm);DeleteDC(hdcScreen);*pcxWindow=2*GetSystemMetrics(SM_CXBORDER)+12*tm.tmAveCharWidth;*pcyWindow=2*GetSystemMetrics(SM_CYBORDER)+GetSystemMetrics(SM_CYCAPTION)+2*tm.tmHeight;}LRESULTCALLBACKWndProc(HWNDhwnd,UINTmessage,WPARAMwParam,LPARAMlParam){staticCOLORREFcr,crLast;st