炫彩界面库论坛

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 2669|回复: 4

Edit编辑框不能编写的问题

[复制链接]

该用户从未签到

发表于 2013-4-9 16:43:50 | 显示全部楼层 |阅读模式
本帖最后由 橙色八月 于 2013-4-9 16:44 编辑

使用炫彩 界面库的时候,发现创建的编辑框不能编辑,跟踪了一下,发现当我按键的时候,进入Edit_OnEventKeyDown这个回调函数,但是这个回调函数没有作处理就走了。所以我按键之后没有反应

BOOL CALLBACK Edit_OnEventKeyDown(HELE hEle,HELE hEventEle,WPARAM wParam,LPARAM lParam)
{
if(hEle!=hEventEle)
  return FALSE;
//XTRACE("keydown %d",wParam);
switch(wParam)
{
case 46:  //Delete
   Edit_CharDeleteKey(hEle);
  break;
case 36:  //Home
  // MoveCaretBegin();
  break;
case 35:  //End
  // MoveCaretEnd();
  break;
case VK_LEFT: //37:  //左
  Eidt_MouseCreatLeft(hEle); //移动插入符向左←
  break;
case VK_UP: //38:  //上
  Eidt_MouseCreatTop(hEle);
  break;
case VK_RIGHT: //39:  //右
  Eidt_MouseCreatRight(hEle);
  break;
case VK_DOWN: //40:  //下
  Eidt_MouseCreatBottom(hEle);
  break;
}
return TRUE;
}


但是我看到了Edit_OnEventChar这个函数,但是按键 的时候并没有进入到这里面,而且这个函数对中文的输入,和一些特殊键支持的都不好,不知道楼主是需要开发者自己写着两个函数吗?不知道有没有写好的啊,求共享。谢谢
BOOL CALLBACK Edit_OnEventChar(HELE hEle,HELE hEventEle,WPARAM wParam,LPARAM lParam)
{
if(hEle!=hEventEle)
  return FALSE;
edit_ *pEdit=EDIT(hEle);
if(pEdit->bDown) return TRUE;
if(VK_TAB==wParam) return TRUE;  //TAB按键
if(VK_ESCAPE==wParam) return TRUE;
if(pEdit->bReadOnly) return TRUE; //只读
if( 0x8000 & GetKeyState(VK_CONTROL))
{
  if(1==wParam)  //全选
  {
   XEdit_Menu_SelectAll(hEle);
  }else if(3==wParam) //复制
  {
   XEdit_Menu_Copy(hEle);
  }else if(22==wParam) //粘贴
  {
   XEdit_Menu_Paste(hEle);
  }
  return TRUE;
}
wchar_t ch[2]={0};
ch[0]=wParam;
//XTRACEW(L"char=%c \n",wParam);
if(VK_BACK==wParam)  //退格
{
  Edit_CharBackspace(hEle);
  // XTRACEW(L"wchar=退格 \n",ch);
}else if(VK_RETURN==wParam) //回车换行
{
  if(pEdit->bMoreLine)
   Edit_CharEnter(hEle);
  // XTRACEW(L"wchar=回车");
}else
{
  Edit_Char(hEle,wParam);
  // XTRACEW(L"wchar=%s \n",ch);
}
return TRUE;
}


该用户从未签到

 楼主| 发表于 2013-4-9 20:59:01 | 显示全部楼层
试了一下,好像是MFC下编辑框就有问题。
我用Demo例子,不用MFC就可以。

该用户从未签到

 楼主| 发表于 2013-4-10 13:27:08 | 显示全部楼层
经过测试,如果编辑框的父窗口是炫彩自己的,就没有问题,
如果 编辑框的父窗口是通过这个函数创建的XWnd_CreateWindowEx,他的父窗口是MFC的窗口,就不能正常使用。

该用户从未签到

 楼主| 发表于 2013-4-13 15:25:54 | 显示全部楼层
我现在用的时候不用MFC的对话框当父窗口了。有太多不便。这个问题,还有MessageBox的问题。
不过 最近事情多,没有时间看这个东西,有时间的话好好看看,
希望大家不要只是提出问题,给出解决方案才是正途啊。哈哈
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

QQ|Archiver|手机版|小黑屋|炫彩界面库 ( 鄂ICP备2023014763号-1 )

GMT+8, 2024-5-4 04:11 , Processed in 0.064235 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表