我是VC.NET初学者。在一个程序中想实现:单文档程序中,在弹出的对话框中点击按钮,即可实现视图类的刷新。如下:
对话框类cpp文件:
#define WM_REFRESHVIEW WM_USER+1
void CInputDlg::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
UpdateData(TRUE);
LRESULT res=AfxGetMainWnd()->SendMessage (WM_REFRESHVIEW);
OnOK();}视图类cpp文件:
#define WM_REFRESHVIEW WM_USER+1BEGIN_MESSAGE_MAP(CMyView, CView)
ON_MESSAGE(WM_REFRESHVIEW,OnRefreshView)
END_MESSAGE_MAP()LRESULT CMyView::OnRefreshView(WPARAM wParam,LPARAM lParam)
{
Invalidate();

return TRUE;
}连接编译都没问题。可在点击按钮时,没有任何反应,感觉是消息没有传递。小弟初学请各位帮忙看看。

解决方案 »

  1.   

    刷新VIEW用重载VIEW类中的UPDATE函数,由DOC指针调用UPDETEALLVIEW(),具体用法参见MSDN
      

  2.   

    呵呵,你的CDiglog对话框是不是模式对话框,我记得,如果是模式对话框的话,那么消息的分发会失败。用楼上所说pDoc->UpdataAllViews()就行了。