首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

分割窗口后响应按钮消息是遇到有关问题了。请大侠们教教小弟我啊

2012-08-28 
分割窗口后响应按钮消息是遇到问题了。请大侠们教教我啊。我想在客户区一边开出一个区域,用来在上面放一个控

分割窗口后响应按钮消息是遇到问题了。请大侠们教教我啊。
我想在客户区一边开出一个区域,用来在上面放一个控制按钮,功能是打开一幅bmp的图片。
我新建了一个C...FormView类,并实现了窗口的分割。然后我在新产生的Dialog资源上新添加一个按钮。
接下来我在C...FormView类中添加按钮消息并加入如下代码:
void C...FormView::OnButton1() 
{
CFileDialog fileOpenDlg(TRUE,"bmp","*.bmp",NULL,"Bitmap Files(*.bmp)",NULL);
C...Doc doc, *pdoc;
pdoc = NULL;
int nRespond = fileOpenDlg.DoModal();
if(nRespond == IDOK)
{
CString filePath = fileOpenDlg.GetPathName();
(pdoc->m_pDib) = new CDib(filePath); //在Doc.h中定义了CDib* m_pDib;
if((pdoc->m_pDib)->IsValid())
doc.SetTitle(filePath);
else
doc.DeleteContents();
}
doc.UpdateAllViews(0);
}

当我程序写到这里时(图片此时还不能显示出来,我还没有在视类的OnDraw函数中添加代码)编译没有报错,在运行时点击按钮也显示打开对话框了,可是当我选择需要打开的.bmp图片打开时弹出:....exe遇到问题需要关闭。......
以前我写国类似的程序,不过在写到这里的时候编译和运行都不报错啊。
(我以前写过的类似的程序不是响应分割窗口中的按钮消息,而是响应主菜单中的一个按钮消息。所以以前我只要在在C...Doc类中添加响应菜单中的一个按钮消息代码和上面很像,只是不要加:C...Doc doc, *pdoc;就可以了。分割窗口后在C...Doc类中没有找到新添加的按钮消息,所以我只有在C...FormView类中添加了。)

请问各位大侠这是怎么回事啊??我要想实现我需要的功能该怎么办呢??

请各位大侠多多赐教,万分感谢!!!!!!!!



[解决办法]
C...Doc doc, *pdoc; 
把这行改成:
C...Doc* doc = (C...Doc)GetDocument();
下面都用doc->来访问文档类成员。
[解决办法]
C...Doc doc, *pdoc; 
pdoc = NULL; 
int nRespond = fileOpenDlg.DoModal(); 
if(nRespond == IDOK) 

CString filePath = fileOpenDlg.GetPathName(); 
(pdoc->m_pDib) = new CDib(filePath); //在Doc.h中定义了CDib* m_pDib; 
if((pdoc->m_pDib)->IsValid()) 
doc.SetTitle(filePath); 
else 
doc.DeleteContents(); 

doc.UpdateAllViews(0); 

====你这个pDoc根本就没有指向任何空间啊。不崩溃才怪
[解决办法]
C...Doc* doc = (C...Doc)GetDocument(); 
改成:
C...Doc* doc = (C...Doc*)GetDocument();

热点排行