minigui 数字编辑框光标怎么不闪烁??

发布于 2022-08-08 06:03:34 字数 24360 浏览 12 评论 1

在界面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.         }

复制代码

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

白芷 2022-08-17 15:50:56

lz ,这程序写得很乱啊~~~

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文