我在作一个基于对话筐的程序中用了edit组件,
1、请问要怎么实现设置edit的背景色和输入的字体。
2、在我的程序中有多个edit,我想在程序中实现用回车键代替tab键的功能,既在edit1中输入回车光标跳到edit2中,然后在edit2中输入回车,光标再跳到edit3中,依次类推直到最后一个edit时输入回车执行一个操作(如相当于点击确定按钮)。
1、请问要怎么实现设置edit的背景色和输入的字体。
2、在我的程序中有多个edit,我想在程序中实现用回车键代替tab键的功能,既在edit1中输入回车光标跳到edit2中,然后在edit2中输入回车,光标再跳到edit3中,依次类推直到最后一个edit时输入回车执行一个操作(如相当于点击确定按钮)。
2.重载PreTranslateMessage()函数,处理回车键事件
BOOL CMy111Dlg::PreTranslateMessage(MSG* pMsg)
{
if( pMsg->message == WM_KEYDOWN )
{
if( pMsg->wParam == VK_RETURN )
::SetFocus(::GetNextDlgTabItem(m_hWnd,::GetFocus(),FALSE));
return TRUE;
}
return CDialog::PreTranslateMessage(pMsg);
}
我知道这样可以。
cedit是从cwnd派生的,
有wm_char等消息。
响应PreTranslate消息
加入:
CWnd* pWnd = this->GetFocus();
if(pWnd->GetDlgCtrlID() == IDC_edtName )
if(lpmsg->wParam == 13)
lpmsg->wParam = 9;
return CDialog::PreTranslateMessage(lpmsg);
for example
……OnCtlColor()
{
if(m_youId==CTLCOLOR_EDIT)
{
pDC->SetBkColor(RGB(255,0,0);
}
}
响应WM_CTLCOLOR消息:
if(nCtlColor ==CTLCOLOR_EDIT&&nCtlColor!=CTLCOLOR_LISTBOX)
{
if( pWnd->GetDlgCtrlID() == IDC_EDIT1 )
{
pDC->SetBkColor(RGB(200,0,0));
m_Edit1.SetFont(); //
return (HBRUSH) CreateSolidBrush(RGB(0,0,200));
}
return NULL;
}
BOOL CMy111Dlg::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message==WM_KEYDOWN&&pMsg->wParam==VK_RETURN)
{
NextDlgCtrl();
return TRUE;
}
return CDialog::PreTranslateMessage(pMsg);
}