MFC~~~~~~edit_control 和 静态文本框设置透明和字体设置

一  字体设置比较简单~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1 。在 testdlg.h(假设工程名字为test)中 设置一个 public 的 CFont font;

2 。在testdlg.cpp中的OnInitDialog函数最后面加入

font.CreateFont(25,0,0,0,100,FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,

CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,FF_SWISS,"微软雅黑");

 参数说明:
 nHeight         :字体高度.>0:字体的高度值;=0:字体采用缺省直.<0:此值的绝对
值为高度.
 nWidth          :字体宽度.
 nEscapement     :文本行的倾斜度.
 nOrientation    :字符基线的倾斜度.
 nWeight         :字体的粗细.如下:
    .FW_DONTCARE
    .FW_THIN
    .FW_EXTRALIGHT
     .....
 bItalic         :字体是否为斜体
 bUnderline      :字体是否带下划线
 cStrikeOut      :字体是否带删除线
 nCharSet        :字体的字符集
    .ANSI_CHARSET
    .DEFAULT_CHARSET
    .SYMBOL_CHARSET
     ......
 nOutPrecision   :字符的输出精度
 nClipPrecision :字符裁剪的精度
 nQuality        :字符的输出质量
 nPitchAndFamily :字符间距和字体族(低位说明间距,高位说明字符族)
 lpszFacename    :字体名称 


m_edit.SetFont(&font,FALSE);

其中m_edit为该控件的控件变量 如果没事先设置 可以使用

 CEdit *m_Edit=(CEdit *)GetDlgItem(IDC_EDIT1);
 m_Edit->SetFont(&m_Font,FALSE); 

二 透明设置~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

有时候会想让控件透明以便美化

其中 edit_control设置透明可以如下

在testdlg中加入OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)的消息响应

HBRUSH CtransparentDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hBrush = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

if(nCtlColor == CTLCOLOR_STATIC)
{
pDC->SetBkMode(TRANSPARENT);
return (HBRUSH)::GetStockObject(NULL_BRUSH);
}
return hBrush;
}

但这样会有问题 需要强制刷新  

 InvalidateRect(EDIT窗口句柄, NULL, FALSE); 
所以我直接用别人写好的类啦!~~~~~~~~~~~~~~~~
附加如下 
我擦,找不到上传附件的地方啊 先继续写
 file.rar~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
将里面的EditTrans.h EditTrans.pp 分别加入工程 
替换MFC的原来的类有如下方法 

一~~~给你的按钮关联一个控件变量 比如CButton m_ctlButton;

然后在.h文件中将CButton换成CMyButton


二~~~CMyButton m_btnMyButton;
然后在对话框的OnInitDialog (或任何适当的地方) 中调用:
m_btnMyButton.SubclassDlgItem(IDC_BUTTON1, this);
假设你已经有了一个窗口的指针,或者你工作在一个CView或其他CWnd派生类中里面的控件被动态的创建,或者你不想使用SubclassDlgItem函数,那么你可以使用下面的方法:
CWnd* pWnd = GetDlgItem(IDC_BUTTON1); // or use some other method to get
// a pointer to the window you wish
// to subclass
ASSERT( pWnd && pWnd->GetSafeHwnd() );
m_btnMyButton.SubclassWindow(pWnd->GetSafeHwnd());

效果图如下 

转载于:https://www.cnblogs.com/xd-jinjian/p/3378823.html

你可以使用 MFC(Microsoft Foundation Classes)来创建多个输入框和显示框的程序。下面是一个简单的示例,演示如何在 MFC 中创建多个输入框和显示框: 1. 创建一个 MFC 应用程序项目。 2. 打开对话框资源编辑器(Dialog Resource Editor),添加所需的输入框和显示框控件。右键单击对话框,选择“插入控件”,然后选择文本框(编辑框)和静态文本框静态控件)。重复此步骤以添加多个输入框和显示框。 3. 在对话框类的头文件中添加用于控制输入框和显示框的成员变量。例如,如果你有三个输入框和三个显示框,可以在头文件中声明六个成员变量: ```cpp CEdit m_editBox1; CEdit m_editBox2; CEdit m_editBox3; CStatic m_staticBox1; CStatic m_staticBox2; CStatic m_staticBox3; ``` 4. 在对话框类的 OnInitDialog 函数中,通过 DDX_Control 函数将成员变量与对应的控件关联起来。例如: ```cpp DDX_Control(pDX, IDC_EDIT1, m_editBox1); DDX_Control(pDX, IDC_EDIT2, m_editBox2); DDX_Control(pDX, IDC_EDIT3, m_editBox3); DDX_Control(pDX, IDC_STATIC1, m_staticBox1); DDX_Control(pDX, IDC_STATIC2, m_staticBox2); DDX_Control(pDX, IDC_STATIC3, m_staticBox3); ``` 5. 在需要的时候,你可以使用成员变量来操作输入框和显示框。例如,使用 GetWindowText 和 SetWindowText 函数获取和设置输入框的文本内容: ```cpp CString strText; m_editBox1.GetWindowText(strText); // 获取输入框1的文本内容 m_staticBox1.SetWindowText(strText); // 设置显示框1的文本内容为输入框1的内容 ``` 这是一个简单的示例,演示了如何在 MFC 中创建多个输入框和显示框的程序。你可以根据自己的需求进行扩展和修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值