minigui 数字编辑框光标怎么不闪烁??
在界面1中的某个数据编辑框光标闪烁处按特定键进入另一个界面2,在界面2中的默认第一个数字编辑框中的光标不闪烁,在移动光标至下一编辑框后闪烁,在移回第1个编辑框,光标也闪烁正常,从其他界面(没有光标闪烁的界面)进入界面2,进入后第一个数字编辑框光标正常闪烁,
在从一个界面的光标闪烁编辑框进入另一个界面的数字编辑框,怎样处理让光标正常闪烁啊,谢谢
具体代码是:
- /*界面1的窗口创建*/
- case MSG_CREATE:
- {
- int i=0, j, starty;
- HWND hw;
- starty = 36;
- for (i=0;i<10;i++) {
- /*The first*/
- hw=CreateWindow (CTRL_STATIC, "",
- WS_CHILD | WS_VISIBLE | WS_BORDER,
- IDC_OUT_STATIC_dizhi1+10*i+WINDOWNID,
- 1, starty+i*16, 20, 16, hDlg, 0);
- SendMessage(hw, EM_LIMITTEXT, 2, 2);
- j=3*6+3;
- hw=CreateWindow (CTRL_EDIT, "",
- WS_CHILD | WS_VISIBLE | WS_BORDER|WS_TABSTOP,
- IDC_OUT_DEVICE1+10*i+WINDOWNID,
- j, starty+i*16, 18, 16, hDlg, 0);
- SendMessage(hw, EM_LIMITTEXT, 3, 3);
- j+=3*6;
- hw=CreateWindow (CTRL_STATIC, "",
- WS_CHILD | WS_VISIBLE | WS_BORDER,
- IDC_OUT_STATIC_shebei1+10*i+WINDOWNID,
- j, starty+i*16, 10*6+4, 16, hDlg, 0);
- /*The second*/
- j+=12*5+10;
- hw=CreateWindow (CTRL_STATIC, "",
- WS_CHILD | WS_VISIBLE | WS_BORDER,
- IDC_OUT_STATIC_dizhi2+10*i+WINDOWNID,
- j, starty+i*16, 18, 16, hDlg, 0);
- SendMessage(hw, EM_LIMITTEXT, 2, 2);
- j+=3*6;
- hw=CreateWindow (CTRL_EDIT, "",
- WS_CHILD | WS_VISIBLE | WS_BORDER|WS_TABSTOP,
- IDC_OUT_DEVICE2+10*i+WINDOWNID,
- j, starty+i*16, 18, 16, hDlg, 0);
- SendMessage(hw, EM_LIMITTEXT, 3, 3);
- j+=3*6;
- hw=CreateWindow (CTRL_STATIC, "",
- WS_CHILD | WS_VISIBLE | WS_BORDER,
- IDC_OUT_STATIC_shebei2+10*i+WINDOWNID,
- j, starty+i*16, 10*6+4, 16, hDlg, 0);
- SendMessage(hw, EM_LIMITTEXT, 2, 2);
- /*The third*/
- j+=12*5+10;
- hw=CreateWindow (CTRL_STATIC, "",
- WS_CHILD | WS_VISIBLE | WS_BORDER,
- IDC_OUT_STATIC_dizhi3+10*i+WINDOWNID,
- j, starty+i*16, 18, 16, hDlg, 0);
- SendMessage(hw, EM_LIMITTEXT, 2, 2);
- j+=3*6;
- hw=CreateWindow (CTRL_EDIT, "",
- WS_CHILD | WS_VISIBLE | WS_BORDER|WS_TABSTOP,
- IDC_OUT_DEVICE3+10*i+WINDOWNID,
- j, starty+i*16, 18, 16, hDlg, 0);
- SendMessage(hw, EM_LIMITTEXT, 3, 3);
- j+=3*6;
- hw=CreateWindow (CTRL_STATIC, "",
- WS_CHILD | WS_VISIBLE | WS_BORDER,
- IDC_OUT_STATIC_shebei3+10*i+WINDOWNID,
- j, starty+i*16, 10*6+4, 16, hDlg, 0);
- j+=12*5+6;
- }
- break;
- }
- case MSG_KEYDOWN:
- switch (wParam) {
- case SCANCODE_F5:
- {
- //DestroyAllControls(hDlg);
- DlgOutSideDevRelation(hDlg,0);//进入另一个界面,该界面同样创建了N个编辑框控件
- }
- return 0;
- break;
- }
- /***********************************************************************/
- /*DlgOutSideDevRelation 界面2的控件*/
- case MSG_CREATE:
- {
- int i=0, j, starty;
- HWND hw;
- starty=5;
- i=184;
- hw=CreateWindow (CTRL_EDIT, "",
- WS_CHILD | WS_VISIBLE | WS_BORDER|WS_TABSTOP,
- IDC_REL_EDIT_addr,
- i+6*6, 3, 24, 16, hDlg, 0);
- SendMessage(hw, EM_LIMITTEXT, 3, 3);
- SetDlgItemInt(hDlg, IDC_REL_EDIT_addr, Relation.addr, 1);
- //在进入该窗口,应该在IDC_REL_EDIT_addr处的编辑框显示闪烁光标(焦点)
- /*实际情况是:焦点在第一个编辑框显示,但不闪烁,使用左右键在该编辑框内移动,也不闪烁,但是
- 当移动至下一个或上一个编辑框后,在移回至该编辑框,光标可以正常闪烁;
- 输入等其他操作都正常,只是初始第一次进入该编辑框时不闪烁,不知原因为何*/
- //SetFocusChild(hw);
- hw=CreateWindow (CTRL_EDIT, "",
- WS_CHILD | WS_VISIBLE | WS_BORDER|WS_TABSTOP,
- IDC_REL_EDIT_xuhao,
- i+16*6, 3, 24, 16, hDlg, 0);
- SendMessage(hw, EM_LIMITTEXT, 3, 3);
- SetDlgItemInt(hDlg, IDC_REL_EDIT_xuhao, 1, 1);
- starty+=16;
- starty+=16-1;
- for (i=0;i<10;i++) {
- hw=CreateWindow (CTRL_STATIC, "",
- WS_CHILD | WS_VISIBLE | WS_BORDER,
- IDC_REL_STATIC_xuhao+10*i+250,
- 1, starty+i*16, 20, 16, hDlg, 0);
- SendMessage(hw, EM_LIMITTEXT, 2, 2);
- j=4*6-2;
- hw=CreateWindow (CTRL_EDIT, "",
- WS_CHILD | WS_VISIBLE | WS_BORDER|WS_TABSTOP,
- IDC_REL_EDIT_dong+10*i+250,
- j, starty+i*16, 24, 16, hDlg, 0);
- SendMessage(hw, EM_LIMITTEXT, 3, 3);
- j+=4*6;
- hw=CreateWindow (CTRL_EDIT, "",
- WS_CHILD | WS_VISIBLE | WS_BORDER|WS_TABSTOP,
- IDC_REL_EDIT_qu+10*i+250,
- j, starty+i*16, 18, 16, hDlg, 0);
- SendMessage(hw, EM_LIMITTEXT, 2, 2);
- j+=3*6;
- hw=CreateWindow (CTRL_EDIT_Ceng, "",
- WS_CHILD | WS_VISIBLE | WS_BORDER|WS_TABSTOP,
- IDC_REL_EDIT_ceng+10*i+250,
- j, starty+i*16, 24, 16, hDlg, 0);
- SendMessage(hw, EM_LIMITTEXT, 3, 3);
- j+=4*6;
- hw=CreateWindow (CTRL_EDIT, "",
- WS_CHILD | WS_VISIBLE | WS_BORDER|WS_TABSTOP,
- IDC_REL_EDIT_hao+10*i+250,
- j, starty+i*16, 24, 16, hDlg, 0);
- SendMessage(hw, EM_LIMITTEXT, 3, 3);
- j+=4*6;
- hw=CreateWindow (CTRL_EDIT, "",
- WS_CHILD | WS_VISIBLE | WS_BORDER|WS_TABSTOP,
- IDC_REL_EDIT_shebei+10*i+250,
- j, starty+i*16, 18, 16, hDlg, 0);
- SendMessage(hw, EM_LIMITTEXT, 2, 2);
- j+=3*6;
- hw=CreateWindow (CTRL_STATIC, "",
- WS_CHILD | WS_VISIBLE | WS_BORDER,
- IDC_REL_STATIC_shebei+10*i+250,
- j, starty+i*16, 10*6+4, 16, hDlg, 0);
- j+=12*5+4;
- hw=CreateWindow (CTRL_SLEDIT, "",
- WS_CHILD | WS_VISIBLE | WS_BORDER|WS_TABSTOP,
- IDC_REL_EDIT_weizhi+10*i+250,
- j, starty+i*16, 12*10+3, 16, hDlg, 0);
- SendMessage(hw, EM_LIMITTEXT, 20, 20);
- j+=12*10+6;
- }
- break;
- }
复制代码
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
![扫码二维码加入Web技术交流群](/public/img/jiaqun_03.jpg)
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
lz ,这程序写得很乱啊~~~