unit2.cpp

来自「本书《C++Builder与WindowsAPI经典范例》附含配套光盘包括132」· C++ 代码 · 共 51 行

CPP
51
字号
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop

#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//-字体对话框与打印对话框的callback函数----------------------------------------------------
UINT APIENTRY CFHookProc(HWND hdlg, UINT uiMsg,
                      WPARAM wParam, LPARAM lParam);
UINT APIENTRY PrintHookProc(HWND hdlg, UINT uiMsg,
                      WPARAM wParam, LPARAM lParam);
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
//LOGFONT结构为CHOOSEFONT结构的成员
LOGFONT lf;
::ZeroMemory(&lf, sizeof(&lf));
//设置CHOOSEFONT结构成员
CHOOSEFONT cf;
::ZeroMemory(&cf, sizeof(CHOOSEFONT));
cf.lStructSize = sizeof(CHOOSEFONT);
cf.hwndOwner = Handle;
cf.lpLogFont = &lf;
//指定callback函数CFHookProc
cf.lpfnHook = CFHookProc;
cf.Flags = CF_SCREENFONTS | CF_EFFECTS | CF_ENABLEHOOK | CF_SHOWHELP;
//打开字体对话框
if(::ChooseFont(&cf))
  {//改变StaticText1字体&尺寸
  StaticText1->Font->Handle =
            ::CreateFontIndirect(cf.lpLogFont);
    }
}
//---------------------------------------------------------------------------
//字体对话框CHOOSEFONT结构的callback函数
UINT APIENTRY CFHookProc(HWND hdlg, UINT uiMsg, WPARAM wParam,
    LPARAM lParam)
{
//grp1,grp2,pshHelp,psh2定义在dlgs.h中,故需 #include <dlgs.h>
if (uiMsg == WM_INITDIALOG)
   {
   ::EnableWindow(::GetDlgItem(hdlg, grp1), false);//<效果>外框
   ::EnableWindow(::GetDlgItem(hdlg, grp2), false);//<范例>外框

⌨️ 快捷键说明

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