/**************/ /* bitmap.c */ /***************************************************************************** PROGRAM: bitmap.c Windows: Win 3.1 & WIN32 PURPOSE: Tikku-ukko bittikartaksi ja tämä taustakuvaksi Editor: Vesa Lappalainen 9.10.1994 PROJECT: bitmap.c, demo.def, ALI\tabhand.c, ALI\tausta.c *****************************************************************************/ #include #include "tabhand.h" #include "tausta.h" /****************************************************************************/ TblClassSWindowMAIN("TblWndClass","ikoni","Tikku-tausta",MsgTbl,0); /****************************************************************************/ HBITMAP hBitBack; /****************************************************************************/ static int ukko(HDC hDC) { Ellipse( hDC,40,40,80,80); /* Pää */ MoveToEx(hDC, 60, 80,NULL); LineTo( hDC, 60,180); /* Keskivartalo */ LineTo( hDC, 20,260); /* Vasen jalka */ MoveToEx(hDC, 60,180,NULL); LineTo( hDC,100,260); /* Oikea jalka */ MoveToEx(hDC, 20,170,NULL); LineTo( hDC, 60, 90); /* Vasen käsi */ LineTo( hDC,120, 40); /* Oikea käsi */ return 0; } /***************************************************************************/ static EVENT WM_create(tMSGParam *msg) /* # MAKE_DC # */ { HDC hDC = CreateCompatibleDC(msg->hDC); HGDIOBJ hold; HBRUSH holdbr, hBrYellow = CreateSolidBrush(RGB(255,255,0)); hBitBack = CreateCompatibleBitmap(msg->hDC,130,270); hold = SelectObject(hDC,hBitBack); holdbr = SelectObject(hDC,hBrYellow); Rectangle(hDC,0,0,130,270); ukko(hDC); SelectObject(hDC,holdbr); SelectObject(hDC,hold); DeleteObject(hBrYellow); DeleteDC(hDC); return 0; } /***************************************************************************/ static EVENT WM_erasebkgnd(tMSGParam *msg) { // TaytaBittikartalla(msg->hWnd,(HDC)msg->wParam,hBitBack); PiirraBittikartta((HDC)msg->wParam,hBitBack,0,0); return 0; } /***************************************************************************/ static EVENT WM_size(tMSGParam *msg) { InvalidateRect(msg->hWnd,NULL,TRUE); return 0; } /***************************************************************************/ static EVENT WM_destroy(tMSGParam *msg) { DeleteObject(hBitBack); PostQuitMessage(msg->wParam); return 0; } /****************************************************************************/ /* Viestien käsittelytaulukko */ /****************************************************************************/ tMSGEntry MsgTbl[] = { { WM_CREATE , DoC , DoC , WM_create, MAKE_DC }, /*a*/ { WM_ERASEBKGND , DoC , DoC , WM_erasebkgnd }, /*a*/ { WM_SIZE , DoC , DoC , WM_size }, /*a*/ { WM_DESTROY , DoC , DoC , WM_destroy }, /*a*/ { 0 } }; /****************************************************************************/