#include <windows.h> #include <windowsx.h> #include <mmsystem.h> #include <stdio.h> #include <stdlib.h> #include <math.h> #define WIN32_LEAN_AND_MEAN #define WINDOW_WIDTH 400 #define WINDOW_HEIGHT 300 #define WINDOW_CLASS_NAME "WINDOW_CLASS" #define KEYDOWN(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000 ) ? 1 : 0) #define KEYUP(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000) ? 0 : 1) HWND main_win=NULL; HINSTANCE hinstance_app=NULL; LRESULT CALLBACK WindowProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) { PAINTSTRUCT ps; HDC hdc; switch(msg) { case WM_CREATE: { return (0); } break; case WM_PAINT: { hdc=BeginPaint(hwnd,&ps); EndPaint(hwnd,&ps); return (0); } break; case WM_DESTROY: { PostQuitMessage(0); return (0); } break; default:break; } return (DefWindowProc(hwnd,msg,wparam,lparam)); } int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hprevinstance, LPSTR lpcmdline, int nshowcmd) { WNDCLASSEX winclass; HWND hwnd; HDC hdc; MSG msg; winclass.cbSize=sizeof(WNDCLASSEX); winclass.style = CS_DBLCLKS | CS_OWNDC | CS_HREDRAW | CS_VREDRAW; winclass.lpfnWndProc = WindowProc; winclass.cbClsExtra = 0; winclass.cbWndExtra = 0; winclass.hInstance = hinstance; winclass.hIcon = LoadIcon(NULL, IDI_APPLICATION); winclass.hCursor = LoadCursor(NULL, IDC_ARROW); winclass.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH); winclass.lpszMenuName = NULL; winclass.lpszClassName = WINDOW_CLASS_NAME; winclass.hIconSm = LoadIcon(NULL, IDI_APPLICATION); hinstance_app=hinstance; if(!RegisterClassEx(&winclass)) return (0); if(!(hwnd=CreateWindowEx(NULL, WINDOW_CLASS_NAME, "Pixel Plotting Demo", WS_OVERLAPPEDWINDOW | WS_VISIBLE, 0,0, WINDOW_WIDTH, WINDOW_HEIGHT, NULL, NULL, hinstance, NULL))) return (0); main_win = hwnd; while(TRUE) { if(PeekMessage(&msg,NULL,0,0,PM_REMOVE)) { if(msg.message==WM_QUIT) { break; } TranslateMessage(&msg); DispatchMessage(&msg); } //------------------------- draw pixel //hdc=GetDC(hwnd); //for(int index=0;index<1000;index++) //{ // int x=rand()%WINDOW_WIDTH; // int y=rand()%WINDOW_HEIGHT; // COLORREF color=RGB(rand()%255,rand()%255,rand()%255); // SetPixel(hdc,x,y,color); //} //ReleaseDC(hwnd,hdc); //if(KEYDOWN(VK_ESCAPE)) // SendMessage(hwnd,WM_CLOSE,0,0); //----------------------draw line hdc=GetDC(hwnd); HPEN hpen=CreatePen(PS_SOLID,1,RGB(rand()%256,rand()%256,rand()%256)); HPEN old_pen=(HPEN)SelectObject(hdc,hpen); MoveToEx(hdc,rand()%WINDOW_WIDTH,rand()%WINDOW_HEIGHT,NULL); LineTo(hdc,rand()%WINDOW_WIDTH,rand()%WINDOW_HEIGHT); SelectObject(hdc,old_pen); DeleteObject(hpen); ReleaseDC(hwnd,hdc); if(KEYDOWN(VK_ESCAPE)) { SendMessage(hwnd,WM_CLOSE,0,0); } } return (msg.wParam); }///:~