本文通过RichEdit控件与父窗口的消息反射实现在父窗口中过滤RichEdit控件的输入、禁用RichEdit控件的VK_TAB。当用户点击TAB键时,焦点从RichEdit控件移至父窗口下一控件。(【注】我的界面程序使用的是炫彩框架,因炫彩编辑框不支持自动换行,所以才发生了下面的事情...)
具体操作如下:
1.父窗口界面初始化中添加创建RichEdit控件:
HWND hEditCommentInfo = CreateWindow(RICHEDIT_CLASS ,NULL ,WS_CHILD|WS_VSCROLL|WS_VISIBLE|ES_MULTILINE|ES_WANTRETURN|ES_AUTOVSCROLL,
editLeft, editTop+110, 200, 200 ,hParentWnd) ,(HMENU)10001 ,NULL ,NULL);
现在运行程序,界面上显示RichEdit编辑框了!但,此时点击Tab键焦点进入不到RichEdit控件。嗯,当然了,父窗口不知道我自己创建了一个RichEdit窗体。此时需要响应父窗体的案按键消息,手动将焦点转移至RichEdit。
2.主窗体添加消息响应
(应用界面程序为炫彩框架,XCGUI_RegWndMessage为炫彩方法)
XCGUI_RegWndMessage(hCommentWnd, WM_KEYDOWN, SysKeyDown);
实现SysKeyDown响应方法
//当RichEdit前一个控件存在焦点,用户点击TAB键时将焦点移至RichEdit控件
BOOL CALLBACK SysKeyDown(WPARAM wParam ,LPARAM lParam )
{
if (wParam == VK_TAB)
{