窗口切分
我在CMainFrame::WindowProc函数中,对一个消息进行了相应。
相应的过程就是起个线程:
case MYWM_SHOWCALLDATA:
{
if(CreateThread(NULL,
0,
(unsigned long (__stdcall *)(void *))CallResultShow,
(void *)0,
0,
NULL
) == NULL)
{
AfxMessageBox("启动线程失败!");
}
break;
}
现在出问题的地方是:
线程中得到切分窗口时,出现了大红叉,
DWORD WINAPI CallResultShow(LPVOID lpvThreadParm)
{
//获得列表的指针
CMainFrame * pFWnd = (CMainFrame *)AfxGetMainWnd();
pFWnd->ShowWindow(SW_SHOWNA);
/*pFWnd->SetActiveWindow();*/
CRightList * pListView =
(CRightList*)pFWnd->m_wndSplitter.GetPane(0,1);
ASSERT(pListView != NULL);
CListCtrl& lstRight = pListView->GetListCtrl();
LONG lStyle;
lStyle=GetWindowLong(lstRight.m_hWnd,GWL_STYLE);//获取当前窗口类型
lStyle&=~LVS_TYPEMASK; //清除显示方式位
lStyle|=LVS_REPORT; //设置显示方式
SetWindowLong(lstRight.m_hWnd,GWL_STYLE,lStyle);//设置窗口类型
lstRight.SetExtendedStylelstRight.GetExtendedStyle) |LVS_EX_FULLROWSELECT);
我的线程函数CallResultShow主要是负责:在切分窗口(右边)中以报表的形式显示数据
但是在语句CRightList * pListView =
(CRightList*)pFWnd->m_wndSplitter.GetPane(0,1);
出现错误!!!
望高人指点!!!急!急!急!急!急!!!!!!!!