📄 fontdemo.c
字号:
/*** $Id: fontdemo.c,v 1.19 2007-10-31 08:51:19 zhounuohua Exp $**** The demo of font.**** Copyright (C) 2001 ~ 2002 Wei Yongming.** Copyright (C) 2003 ~ 2007 Feynman Software.**** Create date: 2002/01/17*//*** This source is free software; you can redistribute it and/or** modify it under the terms of the GNU General Public** License as published by the Free Software Foundation; either** version 2 of the License, or (at your option) any later version.**** This software is distributed in the hope that it will be useful,** but WITHOUT ANY WARRANTY; without even the implied warranty of** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU** General Public License for more details.**** You should have received a copy of the GNU General Public** License along with this library; if not, write to the Free** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,** MA 02111-1307, USA*//*** TODO:*/#include <stdio.h>#include <stdlib.h>#include <string.h>#include <time.h>#include <minigui/common.h>#include <minigui/minigui.h>#include <minigui/gdi.h>#include <minigui/window.h>#define IDM_EXIT 160#define IDM_TEXTOUT1 200#define IDM_TEXTOUT2 210#define IDM_TEXTOUT3 215#define IDM_TEXTOUT4 216#define IDM_TABBEDTEXTOUT 220#define IDM_TABBEDTEXTOUTEX 230#define IDM_DRAWTEXT 240#define IDM_ROTATION 250#define IDM_ABOUT 310static HMENU createpmenuabout (void){ HMENU hmnu; MENUITEMINFO mii; memset (&mii, 0, sizeof(MENUITEMINFO)); mii.type = MFT_STRING; mii.id = 0; mii.typedata = (DWORD)"About"; hmnu = CreatePopupMenu (&mii); memset (&mii, 0, sizeof(MENUITEMINFO)); mii.type = MFT_STRING ; mii.state = 0; mii.id = IDM_ABOUT; mii.typedata = (DWORD)"About MiniGUI..."; InsertMenuItem(hmnu, 3, TRUE, &mii); return hmnu;}static HMENU createpmenufile (void){ HMENU hmnu; MENUITEMINFO mii; memset (&mii, 0, sizeof(MENUITEMINFO)); mii.type = MFT_STRING; mii.id = 0; mii.typedata = (DWORD)"File"; hmnu = CreatePopupMenu (&mii); mii.type = MFT_STRING; mii.state = 0; mii.id = IDM_EXIT; mii.typedata = (DWORD)"Exit"; InsertMenuItem(hmnu, 0, TRUE, &mii); return hmnu;}static HMENU createpmenudialogs (void){ HMENU hmnu; MENUITEMINFO mii; memset (&mii, 0, sizeof(MENUITEMINFO)); mii.type = MFT_STRING; mii.id = 0; mii.typedata = (DWORD)"Text"; hmnu = CreatePopupMenu (&mii); mii.type = MFT_STRING ; mii.state = 0; mii.id = IDM_TEXTOUT1; mii.typedata = (DWORD)"TextOut1..."; InsertMenuItem(hmnu, 0, TRUE, &mii); mii.type = MFT_STRING ; mii.state = 0; mii.id = IDM_TEXTOUT2; mii.typedata = (DWORD)"TextOut2..."; InsertMenuItem(hmnu, 1, TRUE, &mii); mii.type = MFT_STRING ; mii.state = 0; mii.id = IDM_TEXTOUT3; mii.typedata = (DWORD)"TextOut3 (TrueType)..."; InsertMenuItem(hmnu, 2, TRUE, &mii); mii.type = MFT_STRING ; mii.state = 0; mii.id = IDM_TEXTOUT4; mii.typedata = (DWORD)"TextOut4 (Type1)..."; InsertMenuItem(hmnu, 2, TRUE, &mii); mii.type = MFT_STRING ; mii.state = 0; mii.id = IDM_TABBEDTEXTOUT; mii.typedata = (DWORD)"TabbedTextOut..."; InsertMenuItem(hmnu, 3, TRUE, &mii); mii.type = MFT_STRING ; mii.state = 0; mii.id = IDM_TABBEDTEXTOUTEX; mii.typedata = (DWORD)"TabbedTextOutEx..."; InsertMenuItem(hmnu, 4, TRUE, &mii); mii.type = MFT_STRING ; mii.state = 0; mii.id = IDM_DRAWTEXT; mii.typedata = (DWORD)"DrawText..."; InsertMenuItem(hmnu, 5, TRUE, &mii); mii.type = MFT_STRING ; mii.state = 0; mii.id = IDM_ROTATION; mii.typedata = (DWORD)"Rotation..."; InsertMenuItem(hmnu, 6, TRUE, &mii); return hmnu;}static HMENU createmenu (void){ HMENU hmnu; MENUITEMINFO mii; hmnu = CreateMenu(); memset (&mii, 0, sizeof(MENUITEMINFO)); mii.type = MFT_STRING; mii.id = 100; mii.typedata = (DWORD)"File"; mii.hsubmenu = createpmenufile (); InsertMenuItem(hmnu, 0, TRUE, &mii); mii.type = MFT_STRING; mii.id = 110; mii.typedata = (DWORD)"Fonts"; mii.hsubmenu = createpmenudialogs (); InsertMenuItem(hmnu, 1, TRUE, &mii); mii.type = MFT_STRING; mii.id = 120; mii.typedata = (DWORD)"About"; mii.hsubmenu = createpmenuabout (); InsertMenuItem(hmnu, 2, TRUE, &mii); return hmnu;}#define MODE_TEXTOUT1 11#define MODE_TEXTOUT2 12#define MODE_TEXTOUT3 13#define MODE_TEXTOUT4 14#define MODE_TABBEDTEXTOUT 20#define MODE_TABBEDTEXTOUTEX 30#define MODE_DRAWTEXT 40#define MODE_ROTATION 50static PLOGFONT logfontttf1, logfontttf2, logfontttf3, logfontttf4, logfontttf5, logfontttf6, logfontttf7, logfontttf8;static PLOGFONT logfonttype1, logfonttype2, logfonttype3, logfonttype4, logfonttype5, logfonttype6, logfonttype7, logfonttype8;static PLOGFONT logfonthelvb1112, logfonthelv1314, logfonthelv1112, logfontsymb9, logfontsymb11, logfontsymb15, logfontsymb19, logfontsymb26, logfonttimes;static PLOGFONT lfArial6, lfArial20, lfArial20c, lfKai16, lfSong20, lfTimes12;static PLOGFONT lfT1a,lfT1b,lfT1c,lfT1d,lfT10,lfT11,lfT12,lfT13,lfT14;void OnModeTextOut1 (HDC hdc){ SetBkColor (hdc, COLOR_blue); SetBkMode (hdc, BM_TRANSPARENT); SelectFont (hdc, logfontttf1); TextOut (hdc, 0, 0, "Olympic 2008. [TextOut] 绘制的 TrueType-SansSerif-GB2312"); SelectFont (hdc, logfontttf2); TextOut (hdc, 0, 30, "Olympic 2008. [TextOut] 绘制的 TrueType-Courier-GB2312"); SelectFont (hdc, logfontttf3); TextOut (hdc, 0, 60, "Olympic 2008. [TextOut] 绘制的 TrueType-song-GB2312 12x12"); SelectFont (hdc, logfontttf6); TextOut (hdc, 0, 90, " 硂琌
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -