第一次做视频采集系统,遇到了这样一个问题,程序如下:
bool m_bKeyPressed;void CVidTestDlg::OnAcapture()
{
// TODO: Add your command handler code here
CString Filter;
CString Filename;
CRect Rect;
m_bKeyPressed=false;//赋初值为false
Filter = "Bitmap Files (*.bmp)|*.bmp|AVI Files (*.avi)|*.avi||";
CFileDialog FileDlg(FALSE, "BMP", NULL,
OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
Filter,
this);
if (FileDlg.DoModal() == IDOK)
{
RedrawWindow();
Filename = FileDlg.GetPathName();
while(!m_bKeyPressed)//此循环为连续捕捉图象
{
Capture(m_VFWImageProc, Filename);
}
m_VideoDisplay.GetWindowRect(Rect);
ScreenToClient(Rect);
m_VFWImageProc.EnablePreviewVideo(*this, Rect.TopLeft().x,Rect.TopLeft().y);
}
}BOOL CVidTestDlg::PreTranslateMessage(MSG* pMsg)//消息传递函数
{
// TODO: Add your specialized code here and/or call the base class
if(pMsg->message==WM_KEYDOWN)//键盘被按下
{
if(pMsg->wParam==VK_F12)//F12键被按下
m_bKeyPressed=true;
}
return CDialog::PreTranslateMessage(pMsg);
}我想利用void CVidTestDlg::OnAcapture()函数连续捕捉图象,直到我按下F12键,此时消息传递函数BOOL CVidTestDlg::PreTranslateMessage(MSG* pMsg)将m_bKeyPressed的值赋为true。则此时图象捕捉完成。问题是此消息捕捉函数对键盘输入好象不起作用,根本不响应任何键,请问这是为什么?请大家帮忙改改程序,在此感谢。
bool m_bKeyPressed;void CVidTestDlg::OnAcapture()
{
// TODO: Add your command handler code here
CString Filter;
CString Filename;
CRect Rect;
m_bKeyPressed=false;//赋初值为false
Filter = "Bitmap Files (*.bmp)|*.bmp|AVI Files (*.avi)|*.avi||";
CFileDialog FileDlg(FALSE, "BMP", NULL,
OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
Filter,
this);
if (FileDlg.DoModal() == IDOK)
{
RedrawWindow();
Filename = FileDlg.GetPathName();
while(!m_bKeyPressed)//此循环为连续捕捉图象
{
Capture(m_VFWImageProc, Filename);
}
m_VideoDisplay.GetWindowRect(Rect);
ScreenToClient(Rect);
m_VFWImageProc.EnablePreviewVideo(*this, Rect.TopLeft().x,Rect.TopLeft().y);
}
}BOOL CVidTestDlg::PreTranslateMessage(MSG* pMsg)//消息传递函数
{
// TODO: Add your specialized code here and/or call the base class
if(pMsg->message==WM_KEYDOWN)//键盘被按下
{
if(pMsg->wParam==VK_F12)//F12键被按下
m_bKeyPressed=true;
}
return CDialog::PreTranslateMessage(pMsg);
}我想利用void CVidTestDlg::OnAcapture()函数连续捕捉图象,直到我按下F12键,此时消息传递函数BOOL CVidTestDlg::PreTranslateMessage(MSG* pMsg)将m_bKeyPressed的值赋为true。则此时图象捕捉完成。问题是此消息捕捉函数对键盘输入好象不起作用,根本不响应任何键,请问这是为什么?请大家帮忙改改程序,在此感谢。
解决方案 »
- 急!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!高分求救VC 编译问题
- 哪位大侠能帮助我啊,shapefile文件的结构是什么啊,怎么实现他的读取和显示?
- 帮忙呀!界面上有2个视图,第一个(class cmylisturl),显示所有网址,第二个(class cmyview),放入一个webbrowse控件显示web页面。问题:当
- SplitterWnd窗口和TreeCtrl问题。
- 发现一个新论坛,很不错,大家有空去看看,那正招斑竹
- owner draw 的问题
- 请问Debug和Relese的区别 ??
- 关于变量输出的小问题,望多指教!
- GetRValue函数应该得到的是int型
- Text Control 控件设置了背景透明后无法刷新控件里内容
- 各位大虾,急救小弟呀!分不够再加。
- 问一下关于对话框重画的问题
{
Capture(m_VFWImageProc, Filename);
}放到一个线程里。
在OnAcapture中启动该线程。
是不是没有捕获这个消息呀
帮你 实验一下
{
Capture(m_VFWImageProc, Filename);
}
占用了,按键得不到响应AfxBeginThread(CaptureProc, (LPCTSTR)Filename);UINT CaptureProc(LPVOID lpParam)
{
while(!m_bKeyPressed)//此循环为连续捕捉图象
{
Capture(m_VFWImageProc, (LPCTSTR)lpParam);
}
}