MFC:焦点传递

</pre><pre name="code" class="cpp"><span style="font-size:14px;">
/**************************************    MFC    **********************************************/
//在文本框中按回车焦点跳到下一个文本框,并依次向下传递:
法一、窗口过程:// 先让文本框响应多行,然后对每一个都要写窗口过程,麻烦!

WNDPROC preProc;
LRESULT CALLBACK WinNewProc(
	HWND hwnd,
	UINT uMsg,
	WPARAM wParam,
	LPARAM lParam
){
	if(uMsg == WM_CHAR && wParam == 0x0d){

		//::SetFocus(::GetNextWindow(hwnd,GW_HWNDNEXT));
		//::SetFocus(::GetWindow(hwnd,GW_HWNDNEXT));
		::SetFocus(::GetNextDlgTabItem(::GetParent(hwnd),hwnd,false));//父窗口句柄,自身句柄,向后Tab
		return 1;
	}else{
		return preProc(hwnd,uMsg,wParam,lParam);
	}
}


BOOL CTestDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	preProc = (WNDPROC)SetWindowLong(GetDlgItem(IDC_EDIT1)->m_hWnd,GWL_WNDPROC,
		(LONG)WinNewProc);

	return TRUE;  
}
法二 、ok为默认按钮
void CTestDlg::OnOK() 
{
	GetNextDlgTabItem(GetFocus())->SetFocus();
//	CDialog::OnOK();
}

</span>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值