以下写法如何在c++builder中实现,谢谢!!!!

xyt_8888 2003-08-24 11:41:45
以下为ereport中设置表格字体的,请问如何在c++builder中写
if cellline_d <> nil then
begin
hTempDC := GetDC(0);
pt.y := abs(reportcontrol1.cellFont_d.lfheight) * 720 div GetDeviceCaps(hTempDC, LOGPIXELSY);
DPtoLP(hTempDC, pt, 1);
ptOrg.x := 0;
ptOrg.y := 0;
DPtoLP(hTempDC, ptOrg, 1);
FontDialog1.Font.Name := reportcontrol1.cellFont_d.lfFaceName;
FontDialog1.Font.Size := ((pt.y - ptOrg.y) div 10);
if FontDialog1.Execute then
begin
Windows.GetObject(FontDialog1.Font.Handle, SizeOf(CellFont), @CellFont);
ReportControl1.SetCellFont(CellFont);
end;
end
else Application.Messagebox('请选择单元格!!!', '警告', MB_OK + MB_iconwarning);
...全文
50 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
turbopeng 2003-08-24
  • 打赏
  • 举报
回复
if (cellline_d != NULL)
{
hTempDC = GetDC(0);
pt.y = int(abs(reportcontrol1->cellFont_d->lfheight) * 720 / GetDeviceCaps(hTempDC, LOGPIXELSY));
DPtoLP(hTempDC, pt, 1);
ptOrg.x = 0;
ptOrg.y = 0;
DPtoLP(hTempDC, ptOrg, 1);
FontDialog1->Font->Name = reportcontrol1->cellFont_d->lfFaceName;
FontDialog1->Font->Size = int((pt.y - ptOrg.y) / 10);
if (FontDialog1->Execute())
{
GetObject(FontDialog1->Font->Handle, SizeOf(CellFont), &CellFont);
ReportControl1->SetCellFont(CellFont);
}
}
else
Application->Messagebox("请选择单元格!!!", "警告", MB_ICONWARNING);

修改了一下
turbopeng 2003-08-24
  • 打赏
  • 举报
回复
if (cellline_d != NULL)
{
hTempDC = GetDC(0);
pt.y = int(abs(reportcontrol1->cellFont_d->lfheight) * 720 / GetDeviceCaps(hTempDC, LOGPIXELSY));
DPtoLP(hTempDC, pt, 1);
ptOrg.x = 0;
ptOrg.y = 0;
DPtoLP(hTempDC, ptOrg, 1);
FontDialog1->Font->Name = reportcontrol1->cellFont_d->lfFaceName;
FontDialog1->Font->Size = int((pt.y - ptOrg.y) / 10);
if (FontDialog1->Execute())
{
GetObject(FontDialog1->Font->Handle, SizeOf(CellFont), &CellFont);
ReportControl1.SetCellFont(CellFont);
}
}
else
Application.Messagebox("请选择单元格!!!", "警告", MB_ICONWARNING);

我的机器没有装BCB,所以可能编译有问题,你自己试一试吧。
xyt_8888 2003-08-24
  • 打赏
  • 举报
回复
TLogFont CellFont;
HDC hTempDC;
TPoint pt, ptOrg;
if (cellline_d != NULL)
{
hTempDC = GetDC(0);
pt.y = int(abs(ReportControl1->cellFont_d.lfHeight) * 720 / GetDeviceCaps(hTempDC, LOGPIXELSY));
DPtoLP(hTempDC, pt, 1);
ptOrg.x = 0;
ptOrg.y = 0;
DPtoLP(hTempDC, ptOrg, 1);
FontDialog1->Font->Name = ReportControl1->cellFont_d.lfFaceName;
FontDialog1->Font->Size = int((pt.y - ptOrg.y) / 10);
if (FontDialog1->Execute())
{
GetObject(FontDialog1->Font->Handle, sizeof(CellFont), &CellFont);
ReportControl1->SetCellFont(CellFont);
}
}
else
Application->MessageBox("请选择单元格!!!", "警告", MB_ICONWARNING);

谢谢你turbopeng(济元) ,程序我已修改的差不多了,但还有一点错误,请再HELP一下:
错误信息如下:
[C++ Error] blmbwh.cpp(666): E2034 Cannot convert 'TPoint' to 'tagPOINT *'
[C++ Error] blmbwh.cpp(666): E2340 Type mismatch in parameter 2 (wanted 'tagPOINT *', got 'TPoint')
[C++ Error] blmbwh.cpp(669): E2034 Cannot convert 'TPoint' to 'tagPOINT *'
[C++ Error] blmbwh.cpp(669): E2340 Type mismatch in parameter 2 (wanted 'tagPOINT *', got 'TPoint')

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧