⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainform.cpp

📁 C++Builder程序员编程手记《配书光盘》
💻 CPP
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "MainForm.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
AnsiString FontSizeC[16]={"初号","小初","一号","小一","二号","小二","三号","小三",
                          "四号","小四","五号","小五","六号","小六","七号","八号"};
int FontSizeN[10]={5,10,15,20,30,40,50,60,80,100};
float FontSizeCtoN[16]={42.5,40,37.5,35,32.5,30,27.5,25,22.5,20,17.5,15,12.5,10,7.5,5};
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
  : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender)
{
  GetFontNames();
  for(int i=0;i<16;i++)
    FontSize->Items->Add(FontSizeC[i]);
  for(int j=0;j<10;j++)
    FontSize->Items->Add(IntToStr(FontSizeN[j]));
}
//---------------------------------------------------------------------------

void __fastcall TForm1::FontBoxChange(TObject *Sender)
{
  TCharsetObject *ChasrsetObject;

  if(Editor->SelText!=NULL)
  {
    ChasrsetObject = (TCharsetObject*)FontBox->Items->Objects[FontBox->ItemIndex];
    CurrText()->Charset = (unsigned char)ChasrsetObject->Charset;
    CurrText()->Name = FontBox->Items->Strings[FontBox->ItemIndex];

    Image1->Picture=NULL;
    Image1->Canvas->Font->Name=FontBox->Text;
    Image1->Canvas->Font->Size=30;
    Image1->Canvas->TextOut(0,0,Editor->SelText);
  }
}
//---------------------------------------------------------------------------
TTextAttributes *__fastcall TForm1::CurrText(void)
{
    return Editor->SelAttributes;
}
//---------------------------------------------------------------------------
int __stdcall EnumFontsProc(TLogFontA &LogFont, TTextMetricA &/*TextMetric*/,
                                int /*FontType*/, Pointer Data)
{
   TCharsetObject *FontCharset;
   FontCharset = new TCharsetObject((int)LogFont.lfCharSet);
   ((TStrings *)Data)->AddObject((AnsiString)LogFont.lfFaceName,FontCharset);
   return 1;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::GetFontNames(void)
{
     HDC hDC = GetDC(Handle);
     void * cTmp = (void *)FontBox->Items;
     EnumFonts(hDC, NULL, (FONTENUMPROC)EnumFontsProc, (long) cTmp );
     ReleaseDC(0,hDC);
     FontBox->Sorted = True;
}
//----------------------------------------------------------------------------
__fastcall TCharsetObject::TCharsetObject(int FCharset)
  : TObject()
{
     Charset = FCharset;
}


void __fastcall TForm1::FontSizeChange(TObject *Sender)
{
   if(FontSize->ItemIndex<16)
      CurrText()->Size=FontSizeCtoN[FontSize->ItemIndex];
   else
      CurrText()->Size=FontSize->Text.ToDouble();
   Image1->Picture=NULL;
   Image1->Canvas->Font->Size=CurrText()->Size;
   Image1->Canvas->Font->Name=FontBox->Text;
   Image1->Canvas->TextOut(0,0,Editor->SelText);
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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