注册消息问题
我在我的对话框里动态的创建了一个组合框,我在组合框里选了“隶书”,“宋体”,“华文行楷”这个程序只改变字的大小却不改变字形。对动态创建的组合框怎样设置其ID号;
#define IDC_COMBOX 101 //这样定义对吗,还有没有别地定义啊
我的代码
.h中
CComboBox m_comboBox;
BEGIN_MESSAGE_MAP(CDlgDlg, CDialog)
//{{AFX_MSG_MAP(CDlgDlg)
……
ON_CBN_SELCHANGE(IDC_COMBOX, OnSelchangeCombo)
…… //}}AFX_MSG_MAP
END_MESSAGE_MAP()
在.cpp中
m_comboBox.Create(CBS_DROPDOWN|WS_VISIBLE|WS_TABSTOP|CBS_AUTOHSCROLL,
rect, &ToolBar1, IDC_COMBOX);
///添加字体名
m_comboBox.AddString("宋体");
m_comboBox.AddString("隶书");
m_comboBox.AddString("华文行楷");
m_comboBox.SetCurSel(0);
////////////////////////////////////////////////////////////
void CDlgDlg::OnSelchangeCombo()
{
CString cs;
m_comboBox.GetLBText(m_comboBox.GetCurSel(),cs);
CFont cf;
LOGFONT lg;
memset(&lg,0,sizeof(lg));
lg.lfHeight=20;
lg.lfWeight=100;
if(cs=="宋体")
{
lstrcpy(lg.lfFaceName,"宋体");
cf.CreateFontIndirect(&lg);
m_text.SetFont(&cf); //m_text 是文本编辑框的CEdit类型的变量; }
if(cs=="隶书")
{
lstrcpy(lg.lfFaceName,"隶书");
cf.CreateFontIndirect(&lg);
m_text.SetFont(&cf);
}
if(cs=="华文行楷")
{
lstrcpy(lg.lfFaceName,"华文行楷");
cf.CreateFontIndirect(&lg);
m_text.SetFont(&cf);
UpdateData(TRUE);
}
cf.DeleteObject();
}