QQ登录

只需一步,快速开始

上位机MFC如何设置文本的对齐方式

[ 复制链接 ]
在直接使用设备上下文输出文本时,我们可以调用函数SetTextAlign来进行排版。
例如我们可以在对话框OnPaint函数中来进行测试
  1. void CGkbc8Dlg::OnPaint()
  2. {
  3.         if (IsIconic())
  4.         {
  5.                 CPaintDC dc(this); // device context for painting

  6.                 SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

  7.                 // Center icon in client rectangle
  8.                 int cxIcon = GetSystemMetrics(SM_CXICON);
  9.                 int cyIcon = GetSystemMetrics(SM_CYICON);
  10.                 CRect rect;
  11.                 GetClientRect(&rect);
  12.                 int x = (rect.Width() - cxIcon + 1) / 2;
  13.                 int y = (rect.Height() - cyIcon + 1) / 2;

  14.                 // Draw the icon
  15.                 dc.DrawIcon(x, y, m_hIcon);
  16.         }
  17.         else
  18.         {
  19. CPaintDC dc(this);
  20.                         CRect rect;
  21.         GetClientRect(rect);

  22.         dc.MoveTo(rect.Width() / 2, 0);
  23.         dc.LineTo(rect.Width() / 2, rect.Height() / 2);
  24.         dc.MoveTo(0, 3 * rect.Height() / 4);
  25.         dc.LineTo(rect.Width(), 3 * rect.Height() / 4);

  26.         //设置透明背景
  27.         dc.SetBkMode(TRANSPARENT);

  28.         //设置左对齐
  29.         dc.SetTextAlign(TA_LEFT);
  30.         dc.TextOut(rect.Width() / 2, 0, _T("TA_LEFT"));

  31.         //设置中间对齐
  32.         dc.SetTextAlign(TA_CENTER);
  33.         dc.TextOut(rect.Width() / 2, 25, _T("TA_CENTER"));

  34.         //设置右对齐
  35.         dc.SetTextAlign(TA_RIGHT);
  36.         dc.TextOut(rect.Width() / 2, 50, _T("TA_RIGHT"));

  37.         //设置基线对齐
  38.         dc.SetTextAlign(TA_CENTER | TA_BASELINE);
  39.         dc.TextOut(rect.Width() / 4, 3 * rect.Height() / 4, _T("TA_BASELINE"));

  40.         //设置上对齐
  41.         dc.SetTextAlign(TA_CENTER | TA_TOP);
  42.         dc.TextOut(rect.Width() / 2, 3 * rect.Height() / 4, _T("TA_TOP"));

  43.         //设置下对齐
  44.         dc.SetTextAlign(TA_CENTER | TA_BOTTOM);
  45.         dc.TextOut(3 * rect.Width() / 4, 3 * rect.Height() / 4, _T("TA_BOTTOM"));

  46.                 CDialog::OnPaint();
  47.         }
  48. }
复制代码
可以看到我们多次调用 了SetTextAlign来进行排版。
  

上位机VC MFC程序开发精典实例大全源码与视频讲解配套下载408例

  

经历1年的编程与录制点击进入查看


  

如果您认可,可联系功能定制!

  

如果您着急,充值会员可直接联系发您资料!

  

QQ联系我

微信扫扫联系我

  


回复

使用道具 举报

快速回复 返回列表 客服中心 搜索