📄 tabpageview.cpp
字号:
GetDlgItem(IDC_EDIT_CONDITION)->MoveWindow(CRect(Edit_Rect.left,Edit_Rect.top,Button_Rect.left-10,
Edit_Rect.bottom));
//改变列表框的大小
GetDlgItem(IDC_LIST_RESULT)->GetWindowRect(&Tree_Rect);
ScreenToClient(&Tree_Rect);
GetDlgItem(IDC_LIST_RESULT)->MoveWindow(CRect(Tree_Rect.left,Tree_Rect.top,
TabPage_Rect.right-10,Check_Rect.top-10));
//再次得到列表控件的大小
/* m_CtrListResult.GetWindowRect(&List_Rect);
ScreenToClient(&List_Rect);
for (k=0;k<7;k++)
{
m_CtrListResult.SetColumnWidth(i,List_Rect.Width()/7);
}*/
// Do not call CFormView::OnPaint() for painting messages
}
void CTabPageView::AddTabPage()
{
for (int i=0;i<2;i++)
{
m_CtrChooseBook.InsertItem(i,TabPage[i]);
}
}
void CTabPageView::CreateBookTree()
{
HTREEITEM hItem,hSubItem;
hItem = m_CtrBookClass.InsertItem("时代圣典图书类别",TVI_ROOT);
m_CtrBookClass.SetBkColor(RGB(247,247,255));
m_CtrBookClass.SetTextColor(RGB(0,0,255));
for (int k=0;k<22;k++)
{
hSubItem = m_CtrBookClass.InsertItem(SDClass[k].Title,0,0,hItem);
for (i=0;i<SDClass[k].Length;i++)
{
m_CtrBookClass.InsertItem(SDClass[k].pClass[i],1,1,hSubItem);
}
}
}
void CTabPageView::OnWindowPosChanging(WINDOWPOS FAR* lpwndpos)
{
CFormView::OnWindowPosChanging(lpwndpos);
// TODO: Add your message handler code here
//禁止视图类的滚动条
ShowScrollBar(SB_BOTH,FALSE);
ModifyStyle(WS_HSCROLL,0,SWP_DRAWFRAME);
}
void CTabPageView::OnSelchangeTabChoosebook(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
switch(m_CtrChooseBook.GetCurSel())
{
case 0:
m_CtrBookClass.ShowWindow(SW_SHOW);
GetDlgItem(IDC_STATIC_FILED)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_RADIO1)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_RADIO2)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_RADIO3)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_RADIO4)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_EDIT_CONDITION)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_BUTTON_SELECT)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_LIST_RESULT)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_CHECK_EQUAL)->ShowWindow(SW_HIDE);
//GetDlgItem(IDC_CHECK_LIKE)->ShowWindow(SW_HIDE);
break;
case 1:
m_CtrBookClass.ShowWindow(SW_HIDE);
GetDlgItem(IDC_STATIC_FILED)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_RADIO1)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_RADIO2)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_RADIO3)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_RADIO4)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_EDIT_CONDITION)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_BUTTON_SELECT)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_LIST_RESULT)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_CHECK_EQUAL)->ShowWindow(SW_SHOW);
//GetDlgItem(IDC_CHECK_LIKE)->ShowWindow(SW_SHOW);
break;
}
*pResult = 0;
}
void CTabPageView::OnContextMenu(CWnd* pWnd, CPoint point)
{
// TODO: Add your message handler code here
UINT flag = 0;
POINT pt;
GetCursorPos(&pt);
m_CtrBookClass.ScreenToClient(&pt);
HTREEITEM hti = m_CtrBookClass.HitTest(pt,&flag);
m_CtrBookClass.SelectItem(hti);
CWnd* ipWnd = GetDlgItem(IDC_TREE_BOOKCLASS);
if (hti&&(m_CtrChooseBook.GetCurSel()==0))
{
CMenu menu;
menu.LoadMenu(IDR_TREERIGHT_MENU);
menu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,point.x,point.y,this);
}
}
void CTabPageView::OnTreerightAdd()
{
// TODO: Add your command handler code here
HTREEITEM hItem;
//得到选中节点的句柄
hItem = m_CtrBookClass.GetSelectedItem();
//得到节点的内容提
strItemDate = m_CtrBookClass.GetItemText(hItem);
//去掉左边的空格
strItemDate.TrimLeft();
//去掉右边的空格
strItemDate.TrimRight();
m_pRunDlg->SetCycleStatus(FALSE);
m_pRunDlg->SetRunMessage("正在打开数据库......");
m_pRunDlg->ShowWindow(SW_SHOW);
//this->m_pBookThread = new CBookThread(this);
//this->m_pBookThread->CreateThread(CREATE_SUSPENDED);
//VERIFY(this->m_pBookThread->SetThreadPriority(THREAD_PRIORITY_NORMAL));
//this->m_pBookThread->ResumeThread();
AddRecordToList(strItemDate);
}
void CTabPageView::AddRecordToList(CString strItemText)
{
ADOConn mydb;
_RecordsetPtr m_pRecordSet;
MSG message;
CString SQLCommand;
CString strField = _T("");
_variant_t var;
int k = 0;
CMainFrame *pFrame = (CMainFrame*)this->GetParent()->GetParent();
CBookListView* pBookList = (CBookListView*)pFrame->GetPaneView(0,1);
if (!mydb.OpenDB())
{
m_pRunDlg->ShowWindow(SW_HIDE);
AfxMessageBox("没能打开安装目录下的cndnynk.mdb\n请确认文件是否存在!");
return;
}
if (IsFirstClass(strItemText))
{
SQLCommand.Format("SELECT BOOKID,ISBN,BOOKNAME,PUBLISHNAM,AUTHERNAME,PUBDATE,\
分类 FROM sdsdeb WHERE 分类 = '%s'",strItemText);
}
else if (strItemText == _T("时代圣典图书类别"))
{
SQLCommand.Format("SELECT BOOKID,ISBN,BOOKNAME,PUBLISHNAM,AUTHERNAME,PUBDATE,\
分类 FROM sdsdeb;");
}
else
{
SQLCommand.Format("SELECT BOOKID,ISBN,BOOKNAME,PUBLISHNAM,AUTHERNAME,PUBDATE,\
分类 FROM sdsdeb WHERE PRODNAME = '%s'",strItemText);
}
m_pRecordSet = mydb.GetRecordSet((_bstr_t)SQLCommand);
if (m_pRecordSet->State != adStateOpen)
{
m_pRunDlg->ShowWindow(SW_HIDE);
AfxMessageBox("没能打开表sdsdeb请确认表是否存在!");
return;
}
try
{
m_pRunDlg->SetRunMessage("正在选书,请稍后......");
m_pRunDlg->Running();
while (m_pRecordSet->adoEOF == VARIANT_FALSE&&(m_pRunDlg->GetCycleStatus()==FALSE))
{
while(::PeekMessage(&message,NULL,0,0,PM_REMOVE))
{
//解解释窗口消息
::TranslateMessage(&message);
//分发窗口消息
::DispatchMessage(&message);
}
var = m_pRecordSet->GetCollect(long(0));
if (var.vt != VT_NULL)
{
strField = (LPCSTR)_bstr_t(var);
}
pBookList->m_CtrBookList.InsertItem(k,strField);
//设置为选中状态
pBookList->m_CtrBookList.SetCheck(k);
for (int i=1;i<7;i++)
{
var = m_pRecordSet->GetCollect((long)i);
if (var.vt != VT_NULL)
{
strField = (LPCSTR)_bstr_t(var);
}
pBookList->m_CtrBookList.SetItemText(k,i,strField);
//设置为选中状态
pBookList->m_CtrBookList.SetCheck(k);
}
m_pRecordSet->MoveNext();
}
m_pRecordSet->Close();
mydb.ExitConnect();
}
catch (_com_error e)
{
mydb.LogWrite((LPCSTR)e.Description());
}
m_pRunDlg->StopRunning();
m_pRunDlg->SetCycleStatus(TRUE);
m_pRunDlg->ShowWindow(SW_HIDE);
}
//判断选择的是哪第几类书
BOOL CTabPageView::IsFirstClass(CString strItemText)
{
for (int i=0;i<22;i++)
{
if (SDClass[i].Title == strItemText)
{
return TRUE;
}
}
return FALSE;
}
void CTabPageView::OnButtonSelect()
{
// TODO: Add your control notification handler code here
}
void CTabPageView::InitListResult()
{
m_CtrListResult.SetExtendedStyle(LVS_EX_CHECKBOXES|LVS_EX_FULLROWSELECT|LVS_EX_MULTIWORKAREAS
|LVS_EX_GRIDLINES);
for (int i=0;i<7;i++)
{
m_CtrListResult.InsertColumn(i,ListColumn[i],LVCFMT_CENTER,80,i);
}
//m_CtrListResult.EnableWindow(FALSE);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -