MFC基础知识总结(1)

 1.列表视图控件:
  
  ClistCtrl类的用法:
   1常规操作函数:它们可以完成向列表视图中插入新
   条目或新列等操作。
  ISubItem-指定条目子索引项
  BOOL DeleteAllItems()删除列表控件中所有条目
  int InsertColumn(int nCol,const LVCOLUMN * pColum)插入新列 操作成功返回新列索引
   nCol-----指定新列索引。
   pColum---为LVCOLUMN结构指针,包含将插入的信息。
   LVCOLUMN结构
   例:m_ListCtrl.InsertColumn( 0, _T( "所有匹配的单词" ), LVCFMT_LEFT, 115 );
  int InsertItem(const LVITEM *pItem)调用该函数以
  向列表中插入新条目 返回新条目索引值
  pItem-------为LVITEM结构,其中包含了将插入的条目信息
  列表控制中包含两个非常重要的数据结构LV_ITEM和LV_COLUMN。LV_ITEM用于定义列表控制的一个表项,LV_COLUMN用于定义列表控制的一个表列
  例:m_ListCtrl.InsertItem( 0, WordSet.m_Word );//数据项
  CString s;
   s.Format("%d",m_Set.m_column1);//格式化
   //int InsertItem(i,s,0)调用该函数以向列表中插入新条目 返回新条目索引值
   //相当于插入新的一行 数字代表列数
   m_ListCtrlx.InsertItem(i,s,0);
  EnsureVisible---调用该函数以确保指定的列表视图条目可见,其原型为:
  BOOL EnsureVisible(int nItem,BOOL bPartialOK)
   返回值:
   nItem:指定了必须可见的条目索引。
   bPartialOK:指定了是否允许部分可见。
   列表视图控件将在必要时进行滚动,以确保指定条目可见。如果bPartialOK参数为非零值,则当条目部分可见时,列表视图控件不进行滚动。
  
  2。属性操作函数:它们可以完成对列表视图控件的属性的设置和查询等操作。
  DWORD SetExtendedStyle(DWORD dwNewStyle) //先设计列表风格
   如果函数调用成功,则返回列表视图控件先前所使用的
  扩展风格。
  LVS_EX_FULLROWSELECT-----对列表视图中的项目进行整行选择,即选择某条目时,该条目的所在行都被选择。
  LVS_EX_GRIDLINES----将在列表视图控件中绘制网格线0x21。
  例:m_ListCtrl.SetExtendedStyle( LVS_EX_GRIDLINES );//将在列表视图控件中绘制网格线0x21。
  POSITION GetFirstSelectedItemPosition() const 如果函数执行成功,则返回条目的POSITION值,如果返回值为KULL,则表示当前列表视图控件中没有条目选中。
  Int GetNextSelectedItem(POSITION& pos) const 如果函数执行成功,则返回列表视图控件中下一个被选中的条目索引。其中参数pos为将接收条目POSITION值的变量。
  BOOL SetColumnWidth(int nCol,int cx)
   调用该函数以设置报表视图或列表视图中指定列的宽度。
   nCol----指定了将被设置宽度的列索引。
   cx-------指定了列的新宽度。
  Int GetItemText(int nItem, int nSubItem,LPTSTR lpszText,int nLen) const;
  CString GetItemText(int nItem, int nSubItem) const;
   对于int,其返回值为所指定的文本长度;对CString,其返回值为包含条目文本的CString对象。
   nItem--------指定将被获取文本的条目索引
   nSubItem---------指定了将被获取文本的条目子项的索引。
   lpszText---------将返回条目文本的缓冲区指针。
   nLen----------指定lpszText缓冲区的长度。
   如果nSubItem为0,则函数将获取条目的标签,nSubItem不为0,将获取指定条目子项的文本。
   例:
  
  BOOL SetItemText(int nItem, int nSubItem,LPTSTR lpszText);
   如果函数调用成功,则返回非零值,否则返回零值。
   nItem--------指定将被设置的条目索引
   nSubItem---------指定了将被设置文本的条目子项的索引。
   lpszText---------指定了将被设置的新条目文本。
  
   例:
  char szTemp[27] = { '/0' };//缓冲区
  
   POSITION Pos = m_ListCtrl.GetFirstSelectedItemPosition();
   if ( Pos == NULL ) return;
   int nCurIndex = m_ListCtrl.GetNextSelectedItem( Pos );
  
   m_Display.Empty();//文本编辑框
   m_ListCtrl.GetItemText( nCurIndex, 0, szTemp, 26 );
  CImageList:图像列表
  
  CImagelist* GetImageList(int nImageList) const;
   如果函数执行成功,则返回列表视图控件的图像列表指针。
   nImageList----指定了将获得的图像列表类型。
   LVSIL_NORMAL---获取大图标图像列表指针
   LVSIL_SMALL--获取小图标图像列表指针
   LVSIL_STATE--获取状态图像列表指针
   CImageList* SetImageList(CImageList* pImageList,int nImageList);
   如果函数执行成功,返回先前的图像列表指针
   参数: pImageList--指定了要设置的图像列表指针
   nImageList--指定了要设置的图像列表类型
   COLORREF GetBkColor() const; 调用该函数获得列表视图控件的背景颜色。
   函数执行成功,返回32位RGB值
   BOOL SetBkColor (COLORREF cr); 调用该函数设置列表视图控件的背景颜色。
   函数执行成功,返回非零值,否则返回零值。
   CHeaderCtrl* GetHeaderCtrl(); 调用改函数以得到列表视图控件的标头控件指针
   函数调用成功,返回列表视图控件所使用的标头控件指针
   例:
   m_imagelist.Create(16,16,TRUE,2,2);
   m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_YES));
   m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_NO));
   m_list.SetImageList(&m_imagelist,LVSIL_SMALL);
  
   m_list.SetExtendedStyle(0x21);
   m_list.SetFont(&m_font1);//设置全部字体
  // m_list.GetHeaderCtrl()->SetFont(&m_font1);//只设置标头控件的字体
   //以下函数与文本有关
   m_list.SetBkColor(RGB(247,247,0));
   m_list.SetTextColor(RGB(255,255,255));//设置列表视图控件的文本颜色
   m_list.SetTextBkColor(RGB(0,0,255));//设置列表视图控件中文本背景色
  m_iImageList.Create(24, 24, TRUE,1, 0);
   HICON hIcon = NULL;
   hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(),
   MAKEINTRESOURCE(IDI_KEBIAO), IMAGE_ICON, 24, 24, 0);
   m_iImageList.Add(hIcon);
   m_FileTree.SetImageList ( &m_iImageList,TVSIL_NORMAL );
  ----------------------事例----------------------------------
  实现排序:
  BOOL m_Bs;
  BOOL m_bIsAsc;//互斥信号量:true升序 反之降序
  CDRecordset m_Set;
  void Sort(BOOL isAsc=TRUE,int secol=1);
  
  void CBaDialog::Sort(BOOL isAsc,int secol)
  {
   if(m_Set.IsOpen())
   m_Set.Close();
   this->Select(); //打开所选择数据表
   m_bSet.Close();//只对m_Set数据标排序 所以关闭m_bSet
   CODBCFieldInfo fieldInfo;
   m_Set.GetODBCFieldInfo(secol,fieldInfo);//返回纪录集中字段的特定种类的信息 即所选
   择的信息
   if(isAsc)//实现排序功能
   {
   m_Set.m_strSort=fieldInfo.m_strName+" ASC";//order by
   m_bIsAsc=TRUE;
   }
   else
   {
   m_Set.m_strSort=fieldInfo.m_strName+" DESC";
   m_bIsAsc=FALSE;
   }
   m_Set.Requery();
  
  }
  //单击索引
  void CBaDialog::OnColumnclickList3(NMHDR* pNMHDR, LRESULT* pResult)
  {
   NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;//系统自动生成
   // TODO: Add your control notification handler code here
   if(FALSE== m_bS)
   {
   int k= pNMListView->iSubItem; //鼠标单击选择第几行
   Sort(!m_bIsAsc, k);
   m_ListCtrlx.DeleteAllItems();
   this->Show();//把数据库学生的数据表内容显示
   }
   *pResult = 0;
  }
  右键单击事件
  void CCCDlg::OnRclickList1(NMHDR* pNMHDR, LRESULT* pResult)
  {
   // TODO: Add your control notification handler code here
   POSITION pos = m_list.GetFirstSelectedItemPosition(); //得到当前选中的行
   if(pos)
   {
   int nItem = m_list.GetNextSelectedItem(pos);
  
   CPoint pt;
   ::GetCursorPos(&pt);
   COfficeXPMenu m_menu;
   m_menu.LoadMenu(IDR_MENU_LIST);
   COfficeXPMenu::SetType(TYPE_XP); //设置菜单的风格,(TYPE_XP, TYPE_NORMAL)
  
   COfficeXPMenu *psub = (COfficeXPMenu *)m_menu.GetSubMenu(0);
   DWORD dwID =psub->TrackPopupMenu(TPM_RIGHTBUTTON,pt.x,pt.y ,this);
   m_menu.DestroyMenu();
   }
  
  
   *pResult = 0;
  }
  列表双击事件(实现在编辑框中显示内容)
  // 双击则显示显示信息
  void CListItemDlg::OnDblclkList(NMHDR* pNMHDR, LRESULT* pResult)
  {
   CWordDaoSet WordSet;
   CString strSQL;
   CString strNewLine( "/r/n" );//回车换行
   char szTemp[27] = { '/0' };
  //得到双击列的位置
   POSITION Pos = m_ListCtrl.GetFirstSelectedItemPosition();
   if ( Pos == NULL ) return;
   int nCurIndex = m_ListCtrl.GetNextSelectedItem( Pos );
  
   m_Display.Empty();
   m_ListCtrl.GetItemText( nCurIndex, 0, szTemp, 26 );
  
   strSQL.Format( "SELECT * FROM WordList WHERE word = '%s'", szTemp );
  
   if ( WordSet.IsOpen() )
   WordSet.Close();
  
   WordSet.Open( AFX_DAO_USE_DEFAULT_TYPE, strSQL, 0 );
  
   if ( !WordSet.IsEOF() )
   {
   if ( !WordSet.m_Explain0.IsEmpty() )
   m_Display += WordSet.m_Explain0 ;//字符串相加
   if ( !WordSet.m_Explain1.IsEmpty() )
   m_Display += ( strNewLine + WordSet.m_Explain1 );
   if ( !WordSet.m_Explain2.IsEmpty() )
   m_Display += ( strNewLine + WordSet.m_Explain2 );
   if ( !WordSet.m_Phrase0.IsEmpty() )
   m_Display += ( strNewLine + WordSet.m_Phrase0 );
   if ( !WordSet.m_Phrase1.IsEmpty() )
   m_Display += ( strNewLine + WordSet.m_Phrase1 );
   if ( !WordSet.m_Phrase2.IsEmpty() )
   m_Display += ( strNewLine + WordSet.m_Phrase2 );
   if ( !WordSet.m_Sentence0.IsEmpty() )
   m_Display += ( strNewLine + WordSet.m_Sentence0 );
   if ( !WordSet.m_Sentence1.IsEmpty() )
   m_Display += ( strNewLine + WordSet.m_Sentence1 );
   }
  
   if ( WordSet.IsOpen() )
   WordSet.Close();
  
   UpdateData( FALSE );//在编辑框中显示文本
  
   *pResult = 0;
  }
  、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
  、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
  void CCcDlg::OnDblclkList(NMHDR* pNMHDR, LRESULT* pResult) //双击list控件的函数
  {
  
   POSITION pos = m_list.GetFirstSelectedItemPosition(); //得到当前选中的行
   if(pos) //如果选中一行
   {
   int nItem = m_list.GetNextSelectedItem(pos);
  
   CAddDlg dlgadd;
   dlgadd.m_bAddOrModify=1; //修改记录的标志
  
   if(m_list.GetItemText(nItem,0)=="N")
   dlgadd.m_bPassed=false; //单项按钮
   else
   dlgadd.m_bPassed=true;
  
   dlgadd.m_strName=m_list.GetItemText(nItem,1);
   dlgadd.m_strCollege =m_list.GetItemText(nItem,2);
   dlgadd.m_strReason =m_list.GetItemText(nItem,3);
   dlgadd.m_date1 =m_list.GetItemText(nItem,4);
   dlgadd.m_date2 =m_list.GetItemText(nItem,5);
   dlgadd.m_strRemark =m_list.GetItemText(nItem,6);
  
   dlgadd.DoModal();
   }
   *pResult = 0;
  }
  
  CListCtrl中选择变化时如何获得通知?
  我在Report View中使用了一个CListCtrl(自绘制类型),我想知道什么时候选择项发生了改变.
  在选择项变化时,可以使用按钮有效或失效,按如下操作:
   加入LVN_ITEMCHANGED消息处理.
   void CYourClassNameHere::OnItemchangedEventList(NMHDR* pNMHDR, LRESULT* pResult)
  {
   NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
   *pResult = 0;
   if (pNMListView->uChanged == LVIF_STATE)
   {
   if (pNMListView->uNewState)
   GetDlgItem(IDC_DELETE)->EnableWindow(TRUE);
   else
   GetDlgItem(IDC_DELETE)->EnableWindow(FALSE);
   }
  }
    /
  树视图控件-树视图控件
  属性设置-style:有按钮、有行、line at root 、边框;more style:卷轴、工具栏提示。
  属性操作函数
  。GetParentItem:调用该函数得到指定树视图条目的父条目.
  HTREEITEM GetParentItem(HTREEITEM hItem);
   hItem:指定条目句柄。
  常规操作函数
  .InsertItem:向树形控件插入新条目
  /* TVINSERTSTRUCT tvInsert; //d第一中插入方法
   tvInsert.hParent = NULL;//指定了父条目句柄,参数为TVI_ROOT或NULL,则该条目被插入控件的根部
   tvInsert.hInsertAfter = NULL;
   tvInsert.item.mask = TVIF_TEXT;
   tvInsert.item.pszText = _T("VC知识库www.vckbase.com");
  
   HTREEITEM hCountry = m_CtrlTree.InsertItem(&tvInsert);*/
  //第二种方法
   HTREEITEM hCountry = m_CtrlTree.InsertItem( _T("VC知识库www.vckbase.com"), NULL, NULL);//根目录
   HTREEITEM hPA = m_CtrlTree.InsertItem(TVIF_TEXT,_T("程序员社区"), 0, 0, 0, 0, 0, hCountry, NULL);//二级目录
  
   HTREEITEM hWA = m_CtrlTree.InsertItem(_T("文档代码中心"),0, 0, hCountry, hPA);// 二级目录
  // m_CtrlTree.InsertItem(_T("程序员论坛"),0, 0, hPA, TVI_SORT);//三级目录
   m_CtrlTree.InsertItem(_T("程序员论坛"), hPA, TVI_SORT);
   m_CtrlTree.InsertItem(_T("程序员交友"), hPA, TVI_SORT);
   m_CtrlTree.InsertItem(_T("人才交流"), hPA, TVI_SORT);
  
   m_CtrlTree.InsertItem(_T("文档中心"), hWA, TVI_SORT); //三级目录
   m_CtrlTree.InsertItem(_T("代码仓库"), hWA, TVI_SORT);
   m_CtrlTree.InsertItem(_T("个人专辑"), hWA, TVI_SORT);
  
   m_CtrlTree.Expand(hCountry,TVE_EXPAND);
  。GetItemText:得到指定条目的文本
  。SetItemText
  
  .Expand:调用该函数以展开或收拢指定条目的子条目。
  BOOL Expand(HTREEITEM hItem,UINT nCode);
   函数成功,返回非零值,否则返回零值。
  hItem:指定将打开或收拢的条目句柄。
  nCode:指定了采取的操作,如下:
   TVE_COLLAPSE:收拢列表
   TVE_COLLAPSERESET:收拢列表,并删除子条目
   TVE_EXPAND:打开列表
   TVE_TOGGLE:如果当前列表已经打开,则收拢之;如果已经收拢,则打开;
  选择所单击的内容
  void CPppView::OnSelchangingTree1(NMHDR* pNMHDR, LRESULT* pResult)
  {
   NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
   // TODO: Add your control notification handler code here
   CTreeCtrl* pTree2 = (CTreeCtrl*) GetDlgItem(IDC_TREE1);//
   HTREEITEM hSelected = pNMTreeView->itemNew.hItem;
   CPppDoc* pDoc = (CPppDoc*)GetDocument();//一切都以文档传输
   CString hParentName;
   HTREEITEM hParent=pTree2->GetParentItem(hSelected); //
   if(hSelected!=NULL)
   {
   pDoc->Name=pTree2->GetItemText(hSelected);// Name在文档里定义
   }
  
   *pResult = 0;
  }
    /
  2.组合框控件:
  int GetCurSel() const 得到当前选项的索引,
  失败则返回CB_ERR。
  Int SetCurSel(int nSelect);
   如果函数调用成功,返回当前选项索引。如果nSelect的值超出范围,或为-1,则返回CB_ERR,并清除当前选项。
  int GetLBText(int nIndex,Cstring& rString ) const
  void GetLBText(int nIndex, LPTSTR lpszText) const
   如果函数调用成功,则返回字符串的字节长度(不包括末尾的空字符)。如果nIndex并非合法的索引,则返回CB_ERR。
   nIndex----指定将获取文本选项的索引。
   LpszText---指定将用以存放所得文本的缓冲区指针。该缓冲区必须足够容纳要获取的文本及其结尾空字符。
  rString:用于存放所的文本的Cstring对象
  int GetLBTextLen( int nIndex) const
  如果函数调用成功,则返回字符串的字节长度(不包括末尾的空字符)。如果nIndex并非合法的索引,则返回CB_ERR。
  nIndex----指定将获取组合框选项的索引。
  -----------------------------------------------------------
  ComboBox(下拉框)的用法:
  CComboBox m_cob;
  CString m_Getstring;
  m_cob.GetLBText(m_cob.GetCurSel(),m_Getstring);//把选择的内容传给m_Getstring
  
  void CBaDialog::OnTimer(UINT nIDEvent)
  { //设置列表框的选择 当再一次选择时 重新设置按钮的属性
   // TODO: Add your message handler code here and/or call default
   CString m_string;
   m_cob.GetLBText(m_cob.GetCurSel(),m_string);
   if(m_Getstring!=m_string)
   {
   GetDlgItem(IDC_STATR)->EnableWindow(TRUE);
   this->Enable(FALSE);
   }
   CDialog::OnTimer(nIDEvent);
  }
    //
  3.BUTTON
  操作函数:
  HICON SetIcon(HICON hIcon); 如果函数操作成功,返回先前与按钮联系的图标句柄。
  以链表的方式实现了主界面所有Button的初始化
  // 设置按钮风格
  // 将其单独定义而不是在ClassWizard中定义,参看InitBuffonStyle();
  private:
   CButtonStyle m_Setting, m_ListItem, m_Addition, m_Remove,
   m_Modify, m_Search, m_About, m_Exit,
   m_Previous, m_Next, m_End, m_Home,
   m_Goto, m_Jump;
  void CMagicWordDlg::InitButtonStyle()
  {
   CList< CButtonStyle*, CButtonStyle* > ButtonList;
   //ButtonList.AddTail( &m_Setting );
   ButtonList.AddTail( &m_ListItem );
   ButtonList.AddTail( &m_Addition );
   ButtonList.AddTail( &m_Remove );
   ButtonList.AddTail( &m_Modify );
   ButtonList.AddTail( &m_Search );
   ButtonList.AddTail( &m_About );
   ButtonList.AddTail( &m_Exit );
   ButtonList.AddTail( &m_Previous );
   ButtonList.AddTail( &m_Next );
   ButtonList.AddTail( &m_End );
   ButtonList.AddTail( &m_Home );
   ButtonList.AddTail( &m_Goto );
   ButtonList.AddTail( &m_Jump );
  
  
   // 用循环实现必须手动改动Resource.h中的定义
   for ( int nIco = IDI_JUMP, nBtn = IDC_JUMP; nBtn >= IDC_LISTITEM; nIco--, nBtn-- )
   {
   CButtonStyle *Button = ButtonList.RemoveTail();
   Button->SubclassDlgItem( nBtn, this );
   Button->SetIcon( nIco );
   Button->SetInactiveBgColor();
   Button->SetInactiveFgColor();
   Button->SetActiveBgColor();
   }
  }
  使按钮不可用
  BOOL m_bS;
  m_bS = GetDlgItem(IDC_STATR)->EnableWindow(FALSE);
  void CBaDialog::Enable( BOOL p)
   {
   BOOL HB;
   HB=p;
   GetDlgItem(IDC_ADD)->EnableWindow(HB);
   GetDlgItem(IDC_DELECT)->EnableWindow(HB);
   GetDlgItem(IDC_EDIT)->EnableWindow(HB);
   GetDlgItem(IDC_FIND)->EnableWindow(HB);
   GetDlgItem(IDC_ALL)->EnableWindow(HB);
   }
  
    //
  编辑控件
  属性操作函数:完成属性的设置和查询等操作〉
  
  常规操作函数:完成清空编辑控件的恢复缓冲区、得到编辑控件中的被选文本等操作。
   SetSel:调用该函数以设置编辑控件中的当前被选文本,其原型:
   void SetSel(DWORD dwSelection,BOOL bNoScroll=FALSE);
   void SetSel(int nStartChar,int nEndChar,BOOL bNoScroll=FALSE);
  dwSelection
  bNoScroll
  nStartChar
  nEndCha
  bNoScroll
  剪贴板操作:
  
    //
  
   状态栏—CstatusBar
   构造函数:完成创建状态栏对象、设置状态栏窗格ID等操作。
  SetIndicators:调用该函数可以设置各个指示窗口的ID,其原型为:
   BOOL SetIndicators(const UINT* lpIDArray,int nIDCount);
   调用成功,返回非零值,否则,零值。
  lpIDArray :为包含状态栏指示窗格ID的数组。
  nIDCount:指定了状态栏指示窗格数目。
   属性操作函数:完成创建状态栏对象、设置状态栏分栏ID等操作。
  CommandToIndex:调用该函数可以获得给定ID值的状态栏指示窗格索引,其原型:
  Int CommandToIndex(UINT nIDFind) const;
  调用成功,返回指示窗格索引,否则,返回-1.
  nIDFind——指定了将获取其索引的窗格ID。
  SetPaneText:调用该函数可以设置给定指示窗格的文本,其原型:
  BOOL SetPaneText(int nIndex,LPCTSTR lpszNewText,BOOL bUpdate=TRUE);
  调用成功,返回非零值,否则,零值。
  nIndex:指定了将设置其文本的状态栏指示窗格索引。
  lpszNewText:指定了将设置的指示窗格文本。
  bUpdate:如果改参数为TRUE,则指示窗格的显示将被更新。
  //
  /
  检查框(Check boxes)和单选按钮(Radio button)
  Radio button:
  
  m_radio.SetCheck(1);//选中状态
  int m_nSel;
  void CSearchDlg::OnOK()
  {
   try
   {
   UpdateData();
   switch(m_nSel)
   {
   case 0:
   theApp.m_strSQL="SELECT * FROM Records WHERE date1>='"+m_strDate1+"' AND date2<='"+m_strDate2+"'";
   break;
  
   case 1:
   theApp.m_strSQL="SELECT * FROM Records WHERE Name LIKE '%"+m_strName+"%'";
   break;
  
   case 2:
   theApp.m_strSQL="SELECT * FROM Records WHERE College LIKE '%"+m_strCollege+"%'";
   break;
  
   case 3:
   theApp.m_strSQL="SELECT * FROM Records WHERE Reason LIKE '%"+m_strReason+"%'";
   break;
   }
   ((CCcDlg*)AfxGetMainWnd())->List(theApp.m_strSQL);
   }
   catch(_com_error e)
   {
   CATCH_ERROR;
   }
  
   CDialog::OnOK();
  }
  
  //
  ///
   
  对话框
   隐藏和显示对话框:ShowWindow (SW_HIDE); ShowWindow (SW_SHOW);
   ShowWindow (SW_HIDE);
   CAcsLogDlg loginDlg;
   if (loginDlg.DoModal ()==IDOK)
   {
   success = TRUE;
   }
   else
   {
   success = FALSE;
   ShowWindow (SW_SHOW);
   }
  对话框中的控件:可见(visible)风格通过调用CWnd::ShowWindow()改变可见性。
  m_button.ShowWindow(SW_SHOW);//显示按钮
  m_button.ShowWindow(SW_HIDE);//隐藏按钮
   禁止(disabled)调用CWnd::EnabledWindow()
   UpdateData();参数为TRUE时,对话框控件中的内容传递给数据成员,为FALSE时反之。
  SetDlgItemText(IDC_Use,"");//对话框中的编辑框清空
  GetDlgItem(IDC_Use)->SetFocus();//光标停在对话框中的IDC_Use
  SetDialogBkColor( RGB( 96, 160, 16 ), RGB( 255, 255, 255 ) ); // 设置对话框背景色及文本色
  调用对话框
  打开文件对话框
  void CMediaPlayerDlg::OnOpen()
  {
   // TODO: Add your control notification handler code here
   char szFileFilter[]=
   "Mp3 File(*.mp3)|*.mp3|"
   "Wma File(*.wma)|*.wma|"
   "Video File(*.dat)|*.dat|"
   "Wave File(*.wav)|*.wav|"
   "AVI File(*.avi)|*.avi|"
   "Movie File(*.mov)|*.mov|"
   "Media File(*.mmm)|*.mmm|"
   "Mid File(*.mid;*,rmi)|*.mid;*.rmi|"
   "MPEG File(*.mpeg)|*.mpeg|"
   "All File(*.*)|*.*||";
  
   CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY,szFileFilter);
  //CFileDialog fileDlg(TRUE, "mdb", "*.mdb", NULL, "Access Files(*.mdb)", NULL);
   if(dlg.DoModal()==IDOK){
   CString PathName=dlg.GetPathName();
   PathName.MakeUpper();
   m_ActiveMovie.SetFileName(PathName);
   }
  
  }
   
  //
  
  字体
  CFont m_font2;
  CFont m_font1;
   m_font1.CreateFont(12, 0,0,0,FW_BOLD, 0,0,0,
   DEFAULT_CHARSET, OUT_CHARACTER_PRECIS, CLIP_CHARACTER_PRECIS,
   DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "宋体");//加粗
  /* m_font2.CreateFont(14, 0,0,0,FW_NORMAL, 0,0,0,
   DEFAULT_CHARSET, OUT_CHARACTER_PRECIS, CLIP_CHARACTER_PRECIS,
   DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "宋体");
  */
  /
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值