stretchblt.c

来自「这是一个MiniGUI的开发例子库 具有各种典型控件实现的源代码」· C语言 代码 · 共 108 行

C
108
字号
/*** $Id: stretchblt.c,v 1.6 2004/07/01 08:39:18 weiym Exp $**** Listing 26.2**** bitblt.c: Sample program for MiniGUI Programming Guide**     demonstration of stretch blitting operation**** Copyright (C) 2003 Feynman Software.**** License: GPL*/#include <minigui/common.h>#include <minigui/minigui.h>#include <minigui/gdi.h>#include <minigui/window.h>#include <minigui/control.h>static int StretchbltWinProc(HWND hWnd, int message, WPARAM wParam, LPARAM lParam){    int i;    HDC hdc, memdc;    switch (message) {    case MSG_PAINT:        hdc = BeginPaint(hWnd);#ifdef _USE_NEWGAL        memdc = CreateCompatibleDCEx (hdc, 300, 300);#else        memdc = CreateCompatibleDC (hdc);#endif        SetBrushColor (memdc, PIXEL_red);        FillBox (memdc, 0, 0, 300, 300);        SetBrushColor (memdc, PIXEL_blue);#ifdef _USE_NEWGAL        FillCircle (memdc, 100, 100, 100);#else        FillBox (memdc, 2, 2, 16, 16);#endif        for (i = 10; i >=1; i--)            StretchBlt (memdc, 0, 0, 300, 300, hdc, 0, 0, 15*i, 15*i, 0);#ifdef _USE_NEWGAL        DeleteMemDC (memdc);#else        DeleteCompatibleDC (memdc);#endif        EndPaint (hWnd, hdc);        return 0;    case MSG_CLOSE:        DestroyAllControls (hWnd);        DestroyMainWindow (hWnd);        PostQuitMessage (hWnd);        return 0;    }    return DefaultMainWinProc(hWnd, message, wParam, lParam);}int MiniGUIMain (int args, const char* arg[]){    MSG Msg;    HWND hMainWnd;    MAINWINCREATE CreateInfo;#ifdef _LITE_VERSION    SetDesktopRect(0, 0, 1024, 768);#endif        CreateInfo.dwStyle = WS_VISIBLE | WS_BORDER | WS_CAPTION;    CreateInfo.dwExStyle = WS_EX_NONE;    CreateInfo.spCaption = "StretchBlt demo";    CreateInfo.hMenu = 0;    CreateInfo.hCursor = GetSystemCursor(0);    CreateInfo.hIcon = 0;    CreateInfo.MainWindowProc = StretchbltWinProc;    CreateInfo.lx = 0;    CreateInfo.ty = 0;    CreateInfo.rx = 640;    CreateInfo.by = 480;    CreateInfo.iBkColor = COLOR_lightwhite;    CreateInfo.dwAddData = 0;    CreateInfo.hHosting = HWND_DESKTOP;        hMainWnd = CreateMainWindow (&CreateInfo);        if (hMainWnd == HWND_INVALID)        return -1;    ShowWindow(hMainWnd, SW_SHOWNORMAL);    while (GetMessage(&Msg, hMainWnd)) {        TranslateMessage(&Msg);        DispatchMessage(&Msg);    }    MainWindowThreadCleanup (hMainWnd);    return 0;}#ifndef _LITE_VERSION#include <minigui/dti.c>#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?