有关自定义消息
在ListCtrlView.h中:
#define WM_MY_BROAD_EDIT WM_USER+110
class 1 : public CFormView
{
enum { IDD = IDD_LISTVIEW };
afx_msg LRESULT OnEnableBroadEdit(WPARAM, LPARAM);}在ListCtrlView.cpp中
BEGIN_MESSAGE_MAP(CListCtrlView, CFormView)
//{{AFX_MSG_MAP(CListCtrlView)
ON_MESSAGE(WM_MY_BROAD_EDIT, OnEnableBroadEdit)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()LRESULT CListCtrlView::OnEnableBroadEdit(WPARAM a, LPARAM)
{ _RecordsetPtr mRecordset=(_RecordsetPtr)a; while(mRecordset->adoEOF)
{
_variant_t vname,vage,vsex,vzhiye;
int nItem;
vname = mRecordset->GetCollect("name");
vage = mRecordset->GetCollect("age");
vsex = mRecordset->GetCollect("sex");
vzhiye = mRecordset->GetCollect("zhiye");
nItem=m_listctrl.InsertItem(0xffff,(_bstr_t)vname);
m_listctrl.SetItem(nItem,1,1,(_bstr_t)vname,NULL,0,0,0);
m_listctrl.SetItem(nItem,2,1,(_bstr_t)vage,NULL,0,0,0);
m_listctrl.SetItem(nItem,3,1,(_bstr_t)vsex,NULL,0,0,0);
m_listctrl.SetItem(nItem,4,1,(_bstr_t)vzhiye,NULL,0,0,0); m_pRecordset->MoveNext();
} AfxMessageBox("..55565");
return 0;
}
...........................................................在LeftPaneView.h中
class CLeftPaneView : public CFormView
{
enum { IDD = IDD_SEARCHBAR };
}
在LeftPaneView.cpp中
void CLeftPaneView::OnBsearch()
{
.................获得m_pRecordset数据集
HWND pWnd= ::FindWindow ("CListCtrlView", "listctrl");
::SendMessage(m_hWnd, WM_MY_BROAD_EDIT,m_pRecordset,0);}我想使用自定义消息把m_pRecordset数据集从CLeftPaneView类传到CListCtrlView中,这样可以实现吗??
不能实现的话 还可以用什么方法?
哪位大哥大姐会的话,快快帮帮小弟吧!!!急急...在线等呢
在ListCtrlView.h中:
#define WM_MY_BROAD_EDIT WM_USER+110
class 1 : public CFormView
{
enum { IDD = IDD_LISTVIEW };
afx_msg LRESULT OnEnableBroadEdit(WPARAM, LPARAM);}在ListCtrlView.cpp中
BEGIN_MESSAGE_MAP(CListCtrlView, CFormView)
//{{AFX_MSG_MAP(CListCtrlView)
ON_MESSAGE(WM_MY_BROAD_EDIT, OnEnableBroadEdit)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()LRESULT CListCtrlView::OnEnableBroadEdit(WPARAM a, LPARAM)
{ _RecordsetPtr mRecordset=(_RecordsetPtr)a; while(mRecordset->adoEOF)
{
_variant_t vname,vage,vsex,vzhiye;
int nItem;
vname = mRecordset->GetCollect("name");
vage = mRecordset->GetCollect("age");
vsex = mRecordset->GetCollect("sex");
vzhiye = mRecordset->GetCollect("zhiye");
nItem=m_listctrl.InsertItem(0xffff,(_bstr_t)vname);
m_listctrl.SetItem(nItem,1,1,(_bstr_t)vname,NULL,0,0,0);
m_listctrl.SetItem(nItem,2,1,(_bstr_t)vage,NULL,0,0,0);
m_listctrl.SetItem(nItem,3,1,(_bstr_t)vsex,NULL,0,0,0);
m_listctrl.SetItem(nItem,4,1,(_bstr_t)vzhiye,NULL,0,0,0); m_pRecordset->MoveNext();
} AfxMessageBox("..55565");
return 0;
}
...........................................................在LeftPaneView.h中
class CLeftPaneView : public CFormView
{
enum { IDD = IDD_SEARCHBAR };
}
在LeftPaneView.cpp中
void CLeftPaneView::OnBsearch()
{
.................获得m_pRecordset数据集
HWND pWnd= ::FindWindow ("CListCtrlView", "listctrl");
::SendMessage(m_hWnd, WM_MY_BROAD_EDIT,m_pRecordset,0);}我想使用自定义消息把m_pRecordset数据集从CLeftPaneView类传到CListCtrlView中,这样可以实现吗??
不能实现的话 还可以用什么方法?
哪位大哥大姐会的话,快快帮帮小弟吧!!!急急...在线等呢
::SendMessage(m_hWnd/*这个是不是应该用pWnd*/, WM_MY_BROAD_EDIT,m_pRecordset,0);
::SendMessage(m_hWnd, WM_MY_BROAD_EDIT,m_pRecordset,0);
CSplitterWnd* splitter = (CSplitterWnd*)GetParent();
CListCtrlView* view = (CListCtrlView)splitter->GetPane(1, 0); // 这里根据实际情况修改。
view->SendMessage(WM_MY_BROAD_EDIT, (WPARAM)m_pRecordset, NULL);
运行后 'type cast' : cannot convert from 'class CWnd *' to 'class CListCtrlView'
我漏掉了一个*号。
{ _RecordsetPtr mRecordset=(_RecordsetPtr*)a; while(mRecordset->adoEOF)
{
_variant_t vname,vage,vsex,vzhiye;
int nItem;
vname = mRecordset->GetCollect("name");
vage = mRecordset->GetCollect("age");
vsex = mRecordset->GetCollect("sex");
vzhiye = mRecordset->GetCollect("zhiye");
nItem=m_listctrl.InsertItem(0xffff,(_bstr_t)vname);
m_listctrl.SetItem(nItem,1,1,(_bstr_t)vname,NULL,0,0,0);
m_listctrl.SetItem(nItem,2,1,(_bstr_t)vage,NULL,0,0,0);
m_listctrl.SetItem(nItem,3,1,(_bstr_t)vsex,NULL,0,0,0);
m_listctrl.SetItem(nItem,4,1,(_bstr_t)vzhiye,NULL,0,0,0); m_pRecordset->MoveNext();
} AfxMessageBox("..55565"); return 0;
}
这个为什么还不执行??/