Monomap: C/C++ Version


/****************************************************************************\
* *
* Monomap.c *
* *
* This program demonstrates the Fastgraph for Windows monochrome bitmap *
* display functions. *
* *
\****************************************************************************/
#include <fgwin.h>
#include "Monomap.h"
#define vbWidth 320
#define vbHeight 200
BYTE Hello[] = {
 0x00,0x00,0x00,0x00,0x00,
 0xCC,0x78,0x78,0x78,0x78,
 0xCC,0xC0,0x30,0x30,0xCC,
 0xCC,0xFC,0x30,0x30,0xCC,
 0xFC,0xCC,0x30,0x30,0xCC,
 0xCC,0x78,0x30,0x30,0x78,
 0xCC,0x00,0x30,0x30,0x00,
 0xCC,0x00,0x70,0x70,0x00};
LRESULT CALLBACK WindowProc(HWND,UINT,WPARAM,LPARAM);
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
 PSTR szCmdParam, int iCmdShow)
{
 static char szAppName[] = "FGmonomap";
 HWND hWnd;
 MSG msg;
 WNDCLASSEX wndclass;
 wndclass.cbSize = sizeof(wndclass);
 wndclass.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;
 wndclass.lpfnWndProc = WindowProc;
 wndclass.cbClsExtra = 0;
 wndclass.cbWndExtra = 0;
 wndclass.hInstance = hInstance;
 wndclass.hIcon = LoadIcon(NULL,IDI_APPLICATION);
 wndclass.hCursor = LoadCursor(NULL,IDC_ARROW);
 wndclass.hbrBackground = NULL;
 wndclass.lpszMenuName = szAppName;
 wndclass.lpszClassName = szAppName;
 wndclass.hIconSm = LoadIcon(NULL,IDI_APPLICATION);
 RegisterClassEx(&wndclass);
 hWnd = CreateWindow(szAppName, // window class name
 "Monochrome Bitmap Demo",// window caption
 WS_OVERLAPPEDWINDOW, // window style
 CW_USEDEFAULT, // initial x position
 CW_USEDEFAULT, // initial y position
 CW_USEDEFAULT, // initial x size
 CW_USEDEFAULT, // initial y size
 NULL, // parent window handle
 NULL, // window menu handle
 hInstance, // program instance handle
 NULL); // creation parameters
 ShowWindow(hWnd,iCmdShow);
 UpdateWindow(hWnd);
 while (GetMessage(&msg,NULL,0,0))
 {
 TranslateMessage(&msg);
 DispatchMessage(&msg);
 }
 return msg.wParam;
}
/****************************************************************************\
* *
* WindowProc() *
* *
\****************************************************************************/
HDC hDC;
HPALETTE hPal;
int hVB;
UINT cxClient, cyClient;
LRESULT CALLBACK WindowProc(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
 PAINTSTRUCT ps;
 switch (iMsg)
 {
 case WM_CREATE:
 hDC = GetDC(hWnd);
 fg_setdc(hDC);
 hPal = fg_defpal();
 fg_realize(hPal);
 fg_vbinit();
 hVB = fg_vballoc(vbWidth,vbHeight);
 fg_vbopen(hVB);
 fg_vbcolors();
 fg_setcolor(25);
 fg_fillpage();
 return 0;
 case WM_COMMAND:
 switch (wParam)
 {
 case IDM_Drawmap:
 fg_setcolor(25);
 fg_fillpage();
 fg_setcolor(10);
 fg_move(vbWidth/2-20,vbHeight/2+4);
 fg_drawmap(Hello,5,8);
 fg_vbscale(0,vbWidth-1,0,vbHeight-1,0,cxClient-1,0,cyClient-1);
 return 0;
 case IDM_Clipmap:
 fg_setcolor(25);
 fg_fillpage();
 fg_setcolor(22);
 fg_move(-12,vbHeight/2+4);
 fg_clipmap(Hello,5,8);
 fg_vbscale(0,vbWidth-1,0,vbHeight-1,0,cxClient-1,0,cyClient-1);
 return 0;
 case IDM_Exit:
 DestroyWindow(hWnd);
 return 0;
 }
 break;
 case WM_PAINT:
 BeginPaint(hWnd,&ps);
 fg_vbscale(0,vbWidth-1,0,vbHeight-1,0,cxClient-1,0,cyClient-1);
 EndPaint(hWnd,&ps);
 return 0;
 case WM_SETFOCUS:
 fg_realize(hPal);
 InvalidateRect(hWnd,NULL,TRUE);
 return 0;
 case WM_SIZE:
 cxClient = LOWORD(lParam);
 cyClient = HIWORD(lParam);
 return 0;
 case WM_DESTROY:
 fg_vbclose();
 fg_vbfree(hVB);
 fg_vbfin();
 DeleteObject(hPal);
 ReleaseDC(hWnd,hDC);
 PostQuitMessage(0);
 return 0;
 }
 return DefWindowProc(hWnd,iMsg,wParam,lParam);
}

Contents
Fastgraph Home Page

 

copyright 2001 Ted Gruber Software, Inc.

AltStyle によって変換されたページ (->オリジナル) /