SetROP2 (hdc, R2_NOT) 函数功能测试

来源:互联网 发布:手机淘宝客服怎么设置 编辑:程序博客网 时间:2024/06/14 16:59

在Windows程序设计(第五版)第七章的BLOKOUT程序中用到了

函数SetROP2 (hdc, R2_NOT)


现对其进行功能测试,


测试代码 在鼠标左键按下和弹起时分别使用一次 SetROP2 (hdc, R2_NOT)并画出一个小正方形,观察绘图结果。


#include <windows.h>LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM) ;int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow){static TCHARszAppName[] = TEXT ("SetPRO2") ;HWNDhwnd ;MSGmsg ;WNDCLASSwndclass ;wndclass.cbClsExtra = 0 ;wndclass.cbWndExtra = 0 ;wndclass.hbrBackground = (HBRUSH)GetStockObject (WHITE_BRUSH) ;wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ;wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ;wndclass.hInstance = hInstance ;wndclass.lpfnWndProc = WndProc ;wndclass.lpszClassName = szAppName ;wndclass.lpszMenuName = NULL ;wndclass.style = CS_HREDRAW | CS_VREDRAW ;if (!RegisterClass (&wndclass)){MessageBox (NULL, TEXT("This program requires Windows NT!"), szAppName, MB_ICONERROR) ;return 0 ;}hwnd = CreateWindow (szAppName, TEXT("A Test of SetROP2"), 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){HDChdc ;static intcxClient, cyClient ;PAINTSTRUCTps ;intx, y ;switch (message){case WM_SIZE :cxClient = LOWORD (lParam) ;cyClient = HIWORD (lParam) ;return 0;case WM_LBUTTONDOWN :hdc = GetDC (hwnd) ;x = LOWORD (lParam) ;y = HIWORD (lParam) ;SetROP2 (hdc, R2_NOT) ;Rectangle (hdc, x, y, x+50, y+50) ;ReleaseDC (hwnd, hdc) ;return 0;case WM_LBUTTONUP :hdc = GetDC (hwnd) ;x = LOWORD (lParam) ;y = HIWORD (lParam) ;SetROP2 (hdc, R2_NOT) ;<span style="white-space:pre"></span>//屏蔽这一行试试Rectangle (hdc, x, y, x+50, y+50) ;ReleaseDC (hwnd, hdc) ;return 0;case WM_DESTROY :PostQuitMessage (0) ;return 0 ;}return DefWindowProc (hwnd, message, wParam, lParam) ;}


1.  鼠标左键按下 , 移动至正方形内部放开


2.鼠标左键按下, 移动至正方形右下方的放开


3. 鼠标左键按下,  不移动, 放开


按下时出现


放开之后这个图形消失








0 0
原创粉丝点击