找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 439|回复: 7

[求助]:怎么样使文本条目的焦点不失去

[复制链接]
发表于 2004-5-26 17:10:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我做了对话框 需要输入文本 在输入完成回车以后
想让键盘焦点还在原来的文本条目(item)中 以便下回继续输入
我使用mdlDialog_focusItemIndexSet  来设置也不行
请大侠来指点一下
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-5-27 08:04:03 | 显示全部楼层
这个函数应该可以的呀!能否把你的钩函数发上来我看一看?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-5-27 08:16:25 | 显示全部楼层
Private void item_textHook
(
DialogItemMessage   *dimP        /* => a ptr to a dialog item message */
)
{
    CExprValue value;
    CExprResult result;
   
    dimP->msgUnderstood = TRUE;

    switch (dimP->messageType)
        {
        case DITEM_MESSAGE_KEYSTROKE:
             {
                if (dimP->u.keystroke.keystroke==13)
                {
                     mdlDialog_itemsApply(db);
                     mdlCExpression_getValue(&value,&result,box_code,2);
                     switch (value.type)
                     {
                        //case CEXPR_TYPE_POINTER:
                             //break;
                        case CEXPR_TYPE_LONG:
                             sprintf (box_filename, "%ld", value.val.valLong);
                             break;
                        case CEXPR_TYPE_DOUBLE:
                             sprintf (box_filename, "%f", value.val.valDouble);
                             break;
                        default:
                             sprintf (box_filename,"错误的表达式");
                     }
                     printf("%s = %s\n",box_code,box_filename);
                     mdlDialog_itemsSynch(db);
                     mdlDialog_focusItemIndexSet(db,0,0);
                 }
                 else
                 {
                       if (strlen(box_filename)>0)
                       {
                                 strcpy (box_filename,"");
                                 mdlDialog_itemsSynch(db);
                       }          
                      //dimP->u.keystroke.keystroke = '$';
                 }
                 break;
              }  
        case DITEM_MESSAGE_FOCUSOUT:
             {
              dimP->u.focusOut.outOfRange=0;
              break;
             }
        default:
            dimP->msgUnderstood = FALSE;
            break;
        }
}

其实只是一个计算器的程序
mdlDialog_focusItemIndexSet(db,0,0);
使用时第一次回车 焦点丢失  , 第二次就回来了 所以参数都没有问题
如果把焦点指向其它的文本条目 mdlDialog_focusItemIndexSet(db,1,0);
那么没有任何问题 就是第一次的回车怎么会焦点丢失
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-5-27 09:28:09 | 显示全部楼层
你把DITEM_MESSAGE_KEYSTROKE事件换成DITEM_MESSAGE_POSTKEYSTROKE试试。
或者在DITEM_MESSAGE_STATECHANGED事件中用mdlDialog_focusItemIndexSet(db,0,0);
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-5-27 09:40:58 | 显示全部楼层
试过了 还是不行
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-5-27 10:45:17 | 显示全部楼层
搞定!钩函数应该如下写:(随机的MDL手册中有该问题的描述。)
   case DITEM_MESSAGE_FOCUSOUT:
      dimP->u.focusOut.nextFocusItemIndex = 0;
      break;
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-5-27 11:47:56 | 显示全部楼层
成功了 但是我在mdl的帮助看到 nextFocusItemIndex是下一个焦点条目的索引 没有其它解释呀
他的值是什么意思
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-5-27 13:35:55 | 显示全部楼层
不就是想让聚焦到的下一个条目的索引值吗?!你的第一个条目的索引值为0,所以我把它设置为0,聚焦就总在第一个条目了!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-24 05:00 , Processed in 0.293734 second(s), 43 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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