void CMainFrame::OnTrayMessage(WPARAM wParam, LPARAM lParam){ if (lParam == WM_LBUTTONDBLCLK) {  ShowWindow(SW_RESTORE); } else if (lParam == WM_RBUTTONDOWN) {  CPoint m_point;  ::GetCursorPos(&m_point);
  CMenu menu;  menu.LoadMenu(IDM_TRAYMENU);  CMenu* submenu = menu.GetSubMenu(0);  SetFo...
    
    
    
    
          当工程的设置为“使用mfc作为静态的链接库”时,在新线程中使用CSocket,当进行Create操作时,会出错
解决办法:
在新线程中重新调用AfxSocketInit()进行Socket的初始化
    
    
    
    
          CString CServices::GetModuleFilePath(){ TCHAR szFile[255]={0}; CString str = _T("");
 DWORD dwRet = GetModuleFileName(NULL,szFile,255);
 if(dwRet!=0) {    str = _T(szFile);  int nPos = str.ReverseFind('\\');  if(nPos!=-1)  {   str = str.Left(nPos+1);  } } return str;}
 
    
    
    
    
          查找字符串中某个字符最后一次出现的位置
两个参数
第一个参数:字符串
第二个参数:查找的字符
返回值:指向最后一次在字符串中出现的该字符的指针,如果要查找的字符再串中没有出现,则返回NULL。
    
    
    
    
          (1)创建时传入字符串资源IDm_pPage1 = new  CMyPropertyPage(IDS_MYCAPTION); (2)修改CPropertyPage.m_pspm_pPage1->m_psp.dwFlags |= PSP_USETITLE;m_pPage1->m_psp.pszTitle = _T("My Caption");注意:这种修改只能在CPropertySheet的Create和DoModal之前进行;          如果是从文件中读出一个字符串来进行设置,最好把这个字符串放在一个静态字符数组里面,例如static char strTitle[32];m_pP...
    
    
    
    
          存储过程为:
create procedure [dbo].[ps_show1]    @maxID intasselect * from ImportBatchwhere BatchID <= @maxID存储过程要求输入一个参数,同时返回一个记录集下面是应用程序中访问存储过程的关键代码:
_RecordsetPtr m_pRecordSetTemp = NULL;    _ConnectionPtr m_pConnection = NULL;    _CommandPtr  m_pCommand = NULL;       _bstr_t strCon(        "...
    
    
    
    
           m_list.SetItemState(1, LVIS_SELECTED, LVIS_SELECTED);  m_list.SetFocus();
 
一定要有那个SetFocus()才可以