照书上的例子作了一个播放avi动画的程序,为什麽对话框中的ID号和.cpp中的程序文件的ID不一致?以下是我的程序:
void CDlgExampleDlg::OnBnClickedOpen(void)
{
// TODO: 在此添加控件通知处理程序代码
CFileDialog dlg(true,"G:\WINNT\clock.avi");
int ret=dlg.DoModal();
if(ret==IDOK)
{
m_FileName=dlg.GetFileName();
}
if(!m_Animate.Open(m_FileName))
m_Animate.Play(0,-1,-1);
}void CDlgExampleDlg::OnBnClickedPlay(void)
{
// TODO: 在此添加控件通知处理程序代码
m_Animate.Play(0,-1,-1);
}
我已经在资源视图中把button的id都改成了IDC_OPEN,IDC_PLAY,IDC_STOP,IDC_EXIT,但程序中的if(ret==IDOK)中的
IDOK是哪里来的,只要把IDOK改成IDC_OPEN等程序就不能播放avi动画,这是为什麽?请指点!
void CDlgExampleDlg::OnBnClickedOpen(void)
{
// TODO: 在此添加控件通知处理程序代码
CFileDialog dlg(true,"G:\WINNT\clock.avi");
int ret=dlg.DoModal();
if(ret==IDOK)
{
m_FileName=dlg.GetFileName();
}
if(!m_Animate.Open(m_FileName))
m_Animate.Play(0,-1,-1);
}void CDlgExampleDlg::OnBnClickedPlay(void)
{
// TODO: 在此添加控件通知处理程序代码
m_Animate.Play(0,-1,-1);
}
我已经在资源视图中把button的id都改成了IDC_OPEN,IDC_PLAY,IDC_STOP,IDC_EXIT,但程序中的if(ret==IDOK)中的
IDOK是哪里来的,只要把IDOK改成IDC_OPEN等程序就不能播放avi动画,这是为什麽?请指点!
//winuser.h
* Dialog Box Command IDs
*/
#define IDOK 1
#define IDCANCEL 2
#define IDABORT 3
#define IDRETRY 4
#define IDIGNORE 5
#define IDYES 6
#define IDNO 7
#if(WINVER >= 0x0400)
#define IDCLOSE 8
#define IDHELP 9
#endif /* WINVER >= 0x0400 */在vc里面,对一些你不知道的东西,比如IDOK,你可以在编辑环境下选中IDOK,然后右键,在弹出菜单里面选择 Go to definition.
建义把C语言学完整,特别是常量定义部分