formator.h
来自「Windows 图形编程 书籍」· C头文件 代码 · 共 134 行
H
134 行
//-----------------------------------------------------------------------------------//
// Windows Graphics Programming: Win32 GDI and DirectDraw //
// ISBN 0-13-086985-6 //
// //
// Written by Yuan, Feng www.fengyuan.com //
// Copyright (c) 2000 by Hewlett-Packard Company www.hp.com //
// Published by Prentice Hall PTR, Prentice-Hall, Inc. www.phptr.com //
// //
// FileName : formator.h //
// Description: Text output stream with Win32 data type support //
// Version : 1.00.000, May 31, 2000 //
//-----------------------------------------------------------------------------------//
#pragma once
#include "..\..\include\lookup.h"
#include "Cache.h"
#include "OutPipe.h"
class KWinPipe : public KTextPipe
{
KCache m_DIBCache;
long m_curDIB;
KCache m_BMICache;
long m_curBMI;
KCache m_PackedDIBCache;
long m_curRegion;
public:
long m_curPackedDIB;
KWinPipe()
{
m_curBMI = -1;
m_curDIB = -1;
m_curPackedDIB = -1 ;
m_curRegion = 0;
}
void AddBrush(const LOGBRUSH * logbrush, bool create=true);
void AddColor(COLORREF color);
void AddRegion(unsigned long size, const RGNDATA * data);
const long * Pound(char tag, const long * data, const DicItem * dic);
bool SaveDIB(const BITMAPINFO * bmi, long bmisize, const void * bits, long bitsize);
bool AddDIB(const void * header,
long bmioffset, long bmisize,
long bitoffset, long bitsize,
TCHAR format[], bool pack = false);
};
class KofstreamPipe : public KWinPipe
{
ofstream m_stream;
public:
TCHAR m_buffer[2048];
int m_nPos;
KofstreamPipe(void)
{
m_nPos = 0;
}
bool Open(const TCHAR * name)
{
#ifdef _UNICODE
return false;
#else
m_stream.open(name);
m_bOpened = true;
return true;
#endif
}
bool Close(void)
{
if (m_bOpened)
{
m_stream.close();
m_bOpened = false;
}
return true;
}
void Clear(void)
{
m_nPos = 0;
m_buffer[0] = 0;
}
bool Put(TCHAR ch)
{
if ( ch=='\r') // ignored
return true;
if ( m_bOpened )
{
m_linelen ++;
m_stream << ch;
}
if ( m_nPos < (MAX_PATH-1) )
{
if ( ch=='\n' )
Clear();
else
{
m_buffer[m_nPos++] = ch;
m_buffer[m_nPos] = 0;
}
return true;
}
else
return false;
}
};
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?