改变Static Text字体颜色

2 篇文章 0 订阅
1. 打开资源视图。
2. 双击打开STATIC所在的对话框。
3. 修改STATIC的ID属性,这里假设为IDC_STATIC1。
4.为对话框添加类,假设为CTestTextDialog.
5. 选择对话框,在属性面板上点击消息,并选择WM_CTLCOLOR。
6.在对话框对应类的CPP中会新增下面的代码:

HBRUSH DataSummaryDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
     BRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
     if (pWnd->GetDlgCtrlID() == IDC_STATIC1)
     {
         pDC->SetTextColor(RGB(255, 0, 0));
     }
     return hbr;
}


7.添加消息映射 ON_WM_CTLCOLOR()

BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx)
ON_WM_CTLCOLOR()
END_MESSAGE_MAP()


8. 在上面的代码中添加修改IDC_STATIC1文本颜色的代码,如下:
HBRUSH DataSummaryDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
     BRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
     if (pWnd->GetDlgCtrlID() == IDC_STATIC1)
     {
         pDC->SetTextColor(RGB(255, 0, 0));
     }
     return hbr;
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
改变JTextArea中单行的字体颜色,可以使用JTextPane代替JTextArea,因为JTextPane支持更高级的文本编辑功能。 下面是一个示例代码,可以在JTextPane中设置单行的字体颜色: ```java import java.awt.Color; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTextPane; import javax.swing.text.BadLocationException; import javax.swing.text.SimpleAttributeSet; import javax.swing.text.StyleConstants; public class ColorfulLineJTextPane extends JFrame { private static final long serialVersionUID = 1L; private JTextPane textPane; public ColorfulLineJTextPane() { setTitle("Colorful Line JTextPane Demo"); setDefaultCloseOperation(EXIT_ON_CLOSE); textPane = new JTextPane(); JScrollPane scrollPane = new JScrollPane(textPane); getContentPane().add(scrollPane); setSize(400, 300); setLocationRelativeTo(null); // 设置第二行的字体颜色为红色 setColorfulLine(1, Color.RED); } /** * 设置指定行的字体颜色 * * @param lineIndex 行号(从0开始) * @param color 颜色 */ private void setColorfulLine(int lineIndex, Color color) { SimpleAttributeSet set = new SimpleAttributeSet(); StyleConstants.setForeground(set, color); int start = 0, end = 0; try { start = textPane.getLineStartOffset(lineIndex); end = textPane.getLineEndOffset(lineIndex); } catch (BadLocationException e) { e.printStackTrace(); } textPane.getStyledDocument().setCharacterAttributes(start, end - start, set, false); } public static void main(String[] args) { new ColorfulLineJTextPane().setVisible(true); } } ``` 在这个例子中,我们使用了JTextPane来展示文本,并通过getLineStartOffset和getLineEndOffset方法获取指定行的起始和结束位置,然后使用setCharacterAttributes方法设置指定范围内的字体颜色。最后,我们调用setColorfulLine方法将第二行的字体颜色设置为红色。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值