描述:
void CSpeakDlg::OnSpeak()
{
UpdateData();
GetDlgItem(IDC_TEXT,&HCurrentWnd);
ISpVoice * pVoice = NULL;
if (FAILED(CoInitialize(NULL)))
{
AfxMessageBox("Error to intiliaze COM");
}
HRESULT hr = CoCreateInstance(CLSID_SpVoice, NULL, CLSCTX_ALL, IID_ISpVoice, (void **)&pVoice);
if( SUCCEEDED( hr ) )
{
hr = pVoice->Speak(m_text.AllocSysString(), 0, NULL);
pVoice->Release();
pVoice = NULL;
}
// SetFocus(HCurrentWnd);
CoUninitialize();
}
以上是小弟的播放函数,但现有如下问题:
1.在它停下来之前我什么都做不了,我用了setfocus函数,但不起作用,不知是不使用的不对.
2.微软的sample中,随着读单词,文本框中的单词先后反选,显示当前读到的位置,不知怎样实现.并且这之中还可以用pause和stop暂停和停止,不会出现我上边遇到的问题,但他没有使用mfc而是直接写,所以winproc可以接收WM_COMMAND消息进行相应操作,不知道用mfc该怎么办?