免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3935 | 回复: 1
打印 上一主题 下一主题

minigui 数字编辑框光标怎么不闪烁?? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-04-28 11:58 |只看该作者 |倒序浏览
在界面1中的某个数据编辑框光标闪烁处按特定键进入另一个界面2,在界面2中的默认第一个数字编辑框中的光标不闪烁,在移动光标至下一编辑框后闪烁,在移回第1个编辑框,光标也闪烁正常,从其他界面(没有光标闪烁的界面)进入界面2,进入后第一个数字编辑框光标正常闪烁,
在从一个界面的光标闪烁编辑框进入另一个界面的数字编辑框,怎样处理让光标正常闪烁啊,谢谢
具体代码是:

  1. /*界面1的窗口创建*/
  2.        case MSG_CREATE:
  3.         {
  4.             int i=0, j, starty;
  5.             HWND hw;
  6.       
  7.             starty = 36;
  8.             for (i=0;i<10;i++) {
  9.                 /*The first*/
  10.                 hw=CreateWindow (CTRL_STATIC, "",
  11.                                                 WS_CHILD | WS_VISIBLE | WS_BORDER,
  12.                                                 IDC_OUT_STATIC_dizhi1+10*i+WINDOWNID,
  13.                                                 1, starty+i*16, 20, 16, hDlg, 0);
  14.                 SendMessage(hw, EM_LIMITTEXT, 2, 2);
  15.                 j=3*6+3;       
  16.                 hw=CreateWindow (CTRL_EDIT, "",
  17.                                                 WS_CHILD | WS_VISIBLE | WS_BORDER|WS_TABSTOP,
  18.                                                 IDC_OUT_DEVICE1+10*i+WINDOWNID,
  19.                                                 j, starty+i*16, 18, 16, hDlg, 0);                                    
  20.                 SendMessage(hw, EM_LIMITTEXT, 3, 3);
  21.                 j+=3*6;
  22.                 hw=CreateWindow (CTRL_STATIC, "",
  23.                                                 WS_CHILD | WS_VISIBLE | WS_BORDER,
  24.                                                 IDC_OUT_STATIC_shebei1+10*i+WINDOWNID,
  25.                                                 j, starty+i*16, 10*6+4, 16, hDlg, 0);
  26.                                                 
  27.                 /*The second*/
  28.                 j+=12*5+10;
  29.                 hw=CreateWindow (CTRL_STATIC, "",
  30.                                                 WS_CHILD | WS_VISIBLE | WS_BORDER,
  31.                                                 IDC_OUT_STATIC_dizhi2+10*i+WINDOWNID,
  32.                                                 j, starty+i*16, 18, 16, hDlg, 0);
  33.                 SendMessage(hw, EM_LIMITTEXT, 2, 2);
  34.                 j+=3*6;       
  35.                 hw=CreateWindow (CTRL_EDIT, "",
  36.                                                 WS_CHILD | WS_VISIBLE | WS_BORDER|WS_TABSTOP,
  37.                                                 IDC_OUT_DEVICE2+10*i+WINDOWNID,
  38.                                                 j, starty+i*16, 18, 16, hDlg, 0);                                    
  39.                 SendMessage(hw, EM_LIMITTEXT, 3, 3);
  40.                 j+=3*6;
  41.                 hw=CreateWindow (CTRL_STATIC, "",
  42.                                                 WS_CHILD | WS_VISIBLE | WS_BORDER,
  43.                                                 IDC_OUT_STATIC_shebei2+10*i+WINDOWNID,
  44.                                                 j, starty+i*16, 10*6+4, 16, hDlg, 0);

  45.                 SendMessage(hw, EM_LIMITTEXT, 2, 2);
  46.                 /*The third*/
  47.                 j+=12*5+10;       
  48.                 hw=CreateWindow (CTRL_STATIC, "",
  49.                                                 WS_CHILD | WS_VISIBLE | WS_BORDER,
  50.                                                 IDC_OUT_STATIC_dizhi3+10*i+WINDOWNID,
  51.                                                 j, starty+i*16, 18, 16, hDlg, 0);
  52.                 SendMessage(hw, EM_LIMITTEXT, 2, 2);
  53.                 j+=3*6;       
  54.                 hw=CreateWindow (CTRL_EDIT, "",
  55.                                                 WS_CHILD | WS_VISIBLE | WS_BORDER|WS_TABSTOP,
  56.                                                 IDC_OUT_DEVICE3+10*i+WINDOWNID,
  57.                                                 j, starty+i*16, 18, 16, hDlg, 0);                                    
  58.                 SendMessage(hw, EM_LIMITTEXT, 3, 3);
  59.                 j+=3*6;
  60.                 hw=CreateWindow (CTRL_STATIC, "",
  61.                                                 WS_CHILD | WS_VISIBLE | WS_BORDER,
  62.                                                 IDC_OUT_STATIC_shebei3+10*i+WINDOWNID,
  63.                                                 j, starty+i*16, 10*6+4, 16, hDlg, 0);

  64.                                                 
  65.                 j+=12*5+6;
  66.             }
  67.             break;
  68.         }
  69.         case MSG_KEYDOWN:
  70.             switch (wParam) {
  71.                 case SCANCODE_F5:
  72.            {
  73.                         //DestroyAllControls(hDlg);
  74.                         DlgOutSideDevRelation(hDlg,0);//进入另一个界面,该界面同样创建了N个编辑框控件
  75.                  }
  76.                  return 0;
  77.                 break;
  78.   
  79.             }

  80. /***********************************************************************/
  81. /*DlgOutSideDevRelation  界面2的控件*/
  82.         case MSG_CREATE:       
  83.         {
  84.             int i=0, j, starty;
  85.             HWND hw;
  86.             starty=5;
  87.             i=184;
  88.             hw=CreateWindow (CTRL_EDIT, "",
  89.                             WS_CHILD | WS_VISIBLE | WS_BORDER|WS_TABSTOP,
  90.                             IDC_REL_EDIT_addr,
  91.                             i+6*6, 3, 24, 16, hDlg, 0);                                  
  92.             SendMessage(hw, EM_LIMITTEXT, 3, 3);
  93.             SetDlgItemInt(hDlg, IDC_REL_EDIT_addr, Relation.addr, 1);
  94.             //在进入该窗口,应该在IDC_REL_EDIT_addr处的编辑框显示闪烁光标(焦点)
  95.         /*实际情况是:焦点在第一个编辑框显示,但不闪烁,使用左右键在该编辑框内移动,也不闪烁,但是
  96.           当移动至下一个或上一个编辑框后,在移回至该编辑框,光标可以正常闪烁;
  97.            输入等其他操作都正常,只是初始第一次进入该编辑框时不闪烁,不知原因为何*/
  98.             //SetFocusChild(hw);
  99.             hw=CreateWindow (CTRL_EDIT, "",
  100.                             WS_CHILD | WS_VISIBLE | WS_BORDER|WS_TABSTOP,
  101.                             IDC_REL_EDIT_xuhao,
  102.                             i+16*6, 3, 24, 16, hDlg, 0);
  103.             SendMessage(hw, EM_LIMITTEXT, 3, 3);
  104.             SetDlgItemInt(hDlg, IDC_REL_EDIT_xuhao, 1, 1);
  105.             starty+=16;
  106.             starty+=16-1;
  107.             for (i=0;i<10;i++) {
  108.                 hw=CreateWindow (CTRL_STATIC, "",
  109.                                                 WS_CHILD | WS_VISIBLE | WS_BORDER,
  110.                                                 IDC_REL_STATIC_xuhao+10*i+250,
  111.                                                 1, starty+i*16, 20, 16, hDlg, 0);
  112.                 SendMessage(hw, EM_LIMITTEXT, 2, 2);
  113.                 j=4*6-2;       
  114.                 hw=CreateWindow (CTRL_EDIT, "",
  115.                                                 WS_CHILD | WS_VISIBLE | WS_BORDER|WS_TABSTOP,
  116.                                                 IDC_REL_EDIT_dong+10*i+250,
  117.                                                 j, starty+i*16, 24, 16, hDlg, 0);                                    
  118.                 SendMessage(hw, EM_LIMITTEXT, 3, 3);
  119.                 j+=4*6;
  120.                 hw=CreateWindow (CTRL_EDIT, "",
  121.                                                 WS_CHILD | WS_VISIBLE | WS_BORDER|WS_TABSTOP,
  122.                                                 IDC_REL_EDIT_qu+10*i+250,
  123.                                                 j, starty+i*16, 18, 16, hDlg, 0);
  124.                 SendMessage(hw, EM_LIMITTEXT, 2, 2);
  125.                 j+=3*6;
  126.                 hw=CreateWindow (CTRL_EDIT_Ceng, "",
  127.                                                 WS_CHILD | WS_VISIBLE | WS_BORDER|WS_TABSTOP,
  128.                                                 IDC_REL_EDIT_ceng+10*i+250,
  129.                                                 j, starty+i*16, 24, 16, hDlg, 0);
  130.                 SendMessage(hw, EM_LIMITTEXT, 3, 3);
  131.                 j+=4*6;
  132.                 hw=CreateWindow (CTRL_EDIT, "",
  133.                                                 WS_CHILD | WS_VISIBLE | WS_BORDER|WS_TABSTOP,
  134.                                                 IDC_REL_EDIT_hao+10*i+250,
  135.                                                 j, starty+i*16, 24, 16, hDlg, 0);
  136.                 SendMessage(hw, EM_LIMITTEXT, 3, 3);
  137.                 j+=4*6;
  138.                 hw=CreateWindow (CTRL_EDIT, "",
  139.                                                 WS_CHILD | WS_VISIBLE | WS_BORDER|WS_TABSTOP,
  140.                                                 IDC_REL_EDIT_shebei+10*i+250,
  141.                                                 j, starty+i*16, 18, 16, hDlg, 0);
  142.                 SendMessage(hw, EM_LIMITTEXT, 2, 2);
  143.                 j+=3*6;
  144.                 hw=CreateWindow (CTRL_STATIC, "",
  145.                                                 WS_CHILD | WS_VISIBLE | WS_BORDER,
  146.                                                 IDC_REL_STATIC_shebei+10*i+250,
  147.                                                 j, starty+i*16, 10*6+4, 16, hDlg, 0);
  148.                 j+=12*5+4;
  149.                 hw=CreateWindow (CTRL_SLEDIT, "",
  150.                                                 WS_CHILD | WS_VISIBLE | WS_BORDER|WS_TABSTOP,
  151.                                                 IDC_REL_EDIT_weizhi+10*i+250,
  152.                                                 j, starty+i*16, 12*10+3, 16, hDlg, 0);
  153.                 SendMessage(hw, EM_LIMITTEXT, 20, 20);
  154.                 j+=12*10+6;
  155.             }
  156.             break;
  157.         }


复制代码

论坛徽章:
0
2 [报告]
发表于 2009-05-19 14:30 |只看该作者
lz ,这程序写得很乱啊~~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP