MFC编辑框如何改变字体的大小

说明:其中m_editPlace为CEidt控件类型的变量。
方法一:

步骤一:在Dlg类中增加一个类成员变量:    CFont m_editFont;

注意:这里Font对象必须是类成员变量,不能是局部变量,否则会出现只改变了光标的大小,而不能改变字体的大小。

步骤二:在OnInitDialog方法中增加下列语句:

m_editFont.CreatePointFont(180, "宋体");

m_editPlace.SetFont(&m_editFont); // 设置新字体

 

方法二:

OnInitDialog方法中增加下列语句也可以实现:

       CFont* ptf=m_editPlace.GetFont(); // 得到原来的字体

       LOGFONT lf;

       ptf->GetLogFont(&lf);

       lf.lfHeight = 20; // 改变字体高度

       strcpy (lf.lfFaceName, "隶书"); // 改变字体名称

       m_editFont.CreateFontIndirect(&lf);

       m_editPlace.SetFont(&m_editFont); // 设置新字体

 

注意:If是个新的结构体变量,GetLogFont函数是实现将ptf中的LOGFONT结构体变量拷贝给If了,所以改变If不等于是改变ptf中的LOGFONT变量。所以下面必须加这两句来创建新的字体对象

m_editFont.CreateFontIndirect(&lf);

m_editPlace.SetFont(&m_editFont); // 设置新字体

1。长度限制
OnInitDialog()中:
m_edit1.SetLimitText(8);                           //m_edit1为编辑框的成员变量
或者
CEdit*pEdt=(CEdit*)GetDlgItem(IDC_EDIT1);
pEdt->SetLimitText(8);                              //限制编辑框输入长度为8字节
2。汉字判断
方法一、
CString str="ab你c好。。";
for(int i=0;i<str.GetLength();i++)
{
if(   (BYTE)str[i]   <   0x80 ) 
{   
      MessageBox("非汉字"); 
}       
else//汉字   
{   
    MessageBox("是汉字");
}                                                                    //方法不好,只能判断有没有汉字
方法二、
CString   ss="dd你aa今bb真cc";
int i=0;
while(i<ss.GetLength())
{
   if(IsDBCSLeadByte(ss[i]))
    {
      //   是DBCS
       i += 2;
      AfxMessageBox("汉字");
      }
      else
    {
       //   英文
      i ++;
     AfxMessageBox("English");
    }
   }
3。字体及大小
定义一全局变量或成员变量CFont   font;                                        //不要定义成局部变量,否则没效果
CEdit*pEdt=(CEdit*)GetDlgItem(IDC_EDIT1);
font.CreatePointFont(266,"Arial");
pEdt->SetFont(&font);
4。背景及文本颜色
定义一成员变量CBrush m_brush;
OnInitDialog()中进行初始化工作m_brush.CreateSolidBrush(RGB(255,0,0));
然后在OnCtrlColor中
HBRUSH CAsdfaaaaaaaaaDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if(nCtlColor==CTLCOLOR_EDIT &&
                          pWnd->GetDlgCtrlID()==IDC_EDIT1)//注意此处的(pWnd->),否则没效果
{
   pDC->SetTextColor(RGB(255,0,0));
   pDC->SetBkColor(RGB(255,255,0));//设置文本背景色
   pDC->SetBkMode(TRANSPARENT);//设置背景透明
   hbr = (HBRUSH)m_brush;
}
return hbr;
}
对于nCtlColor的类型,如下:
CTLCOLOR_BTN    Button control 
CTLCOLOR_DLG    Dialog box 
CTLCOLOR_EDIT    Edit control 
CTLCOLOR_LISTBOX    List-box control 
CTLCOLOR_MSGBOX    Message box 
CTLCOLOR_SCROLLBAR    Scroll-bar control 
CTLCOLOR_STATIC    Static control

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MFC 框架中,要在编辑框中输入矩阵,可以参考以下步骤: 1. 创建一个编辑框控件,并设置其属性,如 ID、字体大小等。 2. 在对话框类(或窗口类)中定义一个变量,用于存储矩阵的值。可以使用 double 类型的二维数组来存储。 3. 在 ClassWizard 中添加一个变量,类型为“值”,并将其绑定到编辑框控件上。 4. 使用 DDX_Text 宏将编辑框控件与矩阵变量进行绑定,以实现双向数据交换。 5. 在程序中通过代码来修改矩阵变量的值,从而更新编辑框中的内容。 以下是一个示例代码: ```c++ // 假设编辑框 ID 为 IDC_MATRIX_EDIT // 假设矩阵变量为 double m_Matrix[3][3]; // 在对话框类中添加以下变量 double m_Matrix[3][3]; // 在 ClassWizard 中添加一个变量,类型为“值”,并将其绑定到编辑框控件上 // 将编辑框控件与矩阵变量进行绑定 DDX_Text(pDX, IDC_MATRIX_EDIT, m_Matrix[0][0]); DDX_Text(pDX, IDC_MATRIX_EDIT + 1, m_Matrix[0][1]); DDX_Text(pDX, IDC_MATRIX_EDIT + 2, m_Matrix[0][2]); DDX_Text(pDX, IDC_MATRIX_EDIT + 3, m_Matrix[1][0]); DDX_Text(pDX, IDC_MATRIX_EDIT + 4, m_Matrix[1][1]); DDX_Text(pDX, IDC_MATRIX_EDIT + 5, m_Matrix[1][2]); DDX_Text(pDX, IDC_MATRIX_EDIT + 6, m_Matrix[2][0]); DDX_Text(pDX, IDC_MATRIX_EDIT + 7, m_Matrix[2][1]); DDX_Text(pDX, IDC_MATRIX_EDIT + 8, m_Matrix[2][2]); // 在程序中通过代码来修改矩阵变量的值 m_Matrix[0][0] = 1.0; m_Matrix[0][1] = 2.0; m_Matrix[0][2] = 3.0; m_Matrix[1][0] = 4.0; m_Matrix[1][1] = 5.0; m_Matrix[1][2] = 6.0; m_Matrix[2][0] = 7.0; m_Matrix[2][1] = 8.0; m_Matrix[2][2] = 9.0; // 更新编辑框中的内容 UpdateData(FALSE); ``` 这样,就可以在 MFC 编程中实现在编辑框中输入矩阵的功能了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值