我现在出现一个奇怪问题,就是一个edit输入框,CString型,当用扫描枪扫条码,程序判断当edit框的字符达到15个时,自动调用外部一个函数,这时函数没有反应如果我不再edit框中判断EOnChange事件,直接扫描后,按一个按钮,执行的程序和上面自动打印一样,这样就正常,但是这样扫描后,还要按个按钮,太麻烦感觉是调用的那个函数有点问题,但是这个他们不能改,只能我这边想办法,我想能否模拟一下按键动作我就直接在“程序判断当edit框的字符达到15个时”调用那个按钮onbutton(),这样还是不行,非得手工按按钮不行这么奇怪的问题让我摊上了,请问这个怎么处理比较好?
解决方案 »
- 为什么我电脑上8483端口没掉了,大虾们能帮忙解决下吗?
- 如何在RichEdit中实现类似WORD公式的特殊文本结构
- 诡异问题,急寻高手!
- C语言中 多个文件 关于struct ,extern,sizeof的问题
- jpg如何转换成RGB/bmp?
- 新技术群 28291042
- const int *pint=new const int(1024); 为什么编译错误, c++primer就是这么写的.
- win32提供的gb<=>big5的转换api如何使用!100分!
- 急求解决no matching symbolic information found
- 高分征WIN2000下网络数据报截取/分析工具
- 请问用Recvfrom接收数据时,怎么知道实际接收数据的长度?
- MFC 在一个Dlg中创建了另一个Dlg,请问怎样才能使两个窗口可以自由切换
在EOnChange里
CString str;
m_edit.GetWindowText(str);
if(str.GetLength() == 15)
{
Func();
}
就可以了
BYTE bVk, // virtual-key code
BYTE bScan, // hardware scan code
DWORD dwFlags, // function options
ULONG_PTR dwExtraInfo // additional keystroke data
);
我还是在edit的onchange事件中:
if(strlen(text) ==15)
{
HWND hwnd;
hwnd = GetDlgItem(IDC_BUTTON3)->m_hWnd;
GetDlgItem(IDC_BUTTON3)->SetFocus();
::SendMessage(hwnd,WM_KEYDOWN,VK_RETURN,0);
}
上面焦点可以获取到,但是不能触发按键按下