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 + -
显示快捷键?