网上找到的,先记下来,还未做测试
 
HRGN BitmapToRegion(HBITMAP hBmp, COLORREF cTransparentColor, COLORREF cTolerance){ HRGN hRgn = NULL;
 if (hBmp) {  HDC hMemDC = CreateCompatibleDC(NULL);  if (hMemDC)  {   BITMAP bm;   GetObject(hBmp, sizeof(bm), &bm);
   //创建一个32位色的位图,并选进内存设备环境   BITMAPINFOHEADER RGB3...
      
      
      
      
          原理:
    首先创建一个不可见的窗口,然后使该窗口作为对话框的父窗口,这样出来的对话框就不在任务栏上显示图标了。
 
代码:
在App类中增加CWnd对象m_wndOwner
在InitInstance函数中添加代码
 
。。。
if(m_wndOwner.m_hWnd == NULL) {  LPCTSTR pstrOwnerClass = AfxRegisterWndClass(0);  if ( !m_wndOwner.CreateEx(0, pstrOwnerClass, _T(""),  //创建一个隐藏的弹出样式的窗口   WS_POPUP, CW_USE...
      
      
      
      
          // Socketmap.h: interface for the CSocketmap class.////////////////////////////////////////////////////////////////////////
#ifndef _SOCKETMAP_H_#define _SOCKETMAP_H_
template<class VALUE>class CSocketQueue  {public: CSocketQueue(); ~CSocketQueue(); int GetCount(){return m_nCount;}; bool InitQu...
      
      
      
      
          #define SIO_RCVALL _WSAIOW(IOC_VENDOR,1)  
      
      
      
      
          int ConnectWithTimeout (SOCKET sock,struct sockaddr *addr,int addrlen,struct timeval *timeout){    int nRet = 0;    unsigned long nonblocking = 1;    unsigned long blocking = 0;    if(!timeout)        return connect(sock, addr, addrlen);    ioctlsocket(sock, FIONBIO, &nonblocking);    if(conn...
      
      
      
      
          void  ReconfigureService(LPSTR lpServiceName,   LPSTR lpDesc)   {       SC_HANDLE schSCManager = ::OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);     if(schSCManager != NULL)     {         //Need to acquire database lock before reconfiguring.           SC_LOCK sclLock = LockServiceDatabase(sch...
      
      
      
      
          #include <io.h>#include <fcntl.h>
void InitConsole(){    int nRet= 0;    FILE* fp;    AllocConsole();    nRet= _open_osfhandle((long)GetStdHandle(STD_OUTPUT_HANDLE), _O_TEXT);    fp = _fdopen(nRet, "w");    *stdout = *fp;    setvbuf(stdout, NULL, _IONBF, 0);}
在程序初始化处加上以上函数即可
转自:http://blog.csd...
      
      
      
      
          BOOL CExportDlg::MyCreateDirectory(CString strDirectory){ int nPos; int nTempPos; CString strTemp; CFileFind ff; BOOL bFind = ff.FindFile(strDirectory); if(bFind)//有此目录  return TRUE; nPos = strDirectory.Find("\\",3); if(nPos < 0)  nPos = strDirectory.Find("/",3); if(nPos < 0)  return FALSE; while...
      
      
      
      
          void WriteLog(CString content){ g_cs.Lock(); SYSTEMTIME st; CString strtm, strout; ::GetLocalTime(&st); strtm.Format("%d-%.2d-%.2d %.2d:%.2d:%.2d",st.wYear,st.wMonth,st.wDay,st.wHour,st.wMinute,st.wSecond); strout.Format("<%s>  %s\r\n",strtm,content); OutputDebugString(strout);
 char moduleF...
      
      
      
      
          // Buffer.h: interface for the CBuffer class.////////////////////////////////////////////////////////////////////////
#if !defined(AFX_BUFFER_H__B477EDB0_45FF_4DCC_910F_1EF9BF4F94DF__INCLUDED_)#define AFX_BUFFER_H__B477EDB0_45FF_4DCC_910F_1EF9BF4F94DF__INCLUDED_
#if _MSC_VER > 1000#pragma once#...
      
      
      
      
          void CAaaaDlg::TruncateString(CString input, CStringArray& strArray, int length){ int len = input.GetLength() ; BYTE* flag = new BYTE[len]; memset(flag,0,len); BYTE f = 0; for(int i=0;i<len;i++) {  if((BYTE)input.GetAt(i) > 0xa0)   f++;  else   f = 0;  flag[i] = f; } long nowLen = 0; long old...
      
      
      
      
          void  GBToUnicode(LPCSTR   lpszAnsi,   LPWSTR   lpszWide)   {    int   nSize=MultiByteToWideChar(     CP_ACP,0,     lpszAnsi,-1,NULL,0);    MultiByteToWideChar(     CP_ACP,0,     lpszAnsi,-1,lpszWide,nSize);   }   
      
      
      
      
          1.
数据库附加一致性问题,
第一新建一个数据库,把SQL停此后,然后把要附加的数据库更名,(注意改成刚才新建的数据库名,替换他的数据库)
运行查询分析器,选择刚才的数据库
第一步:运行 sp_dboption @DBNAME='这里是你的数据库名', @OPTNAME='SINGLE USER', @OPTVALUE='TRUE'第二步:运行 DBCC CHECKDB ('这里是你的数据库名',REPAIR_ALLOW_DATA_LOSS)第三步:运行 sp_dboption @DBNAME='这里是你的数据库名', @OPTNAME='SINGLE USER', @OPTVA...
      
      
      
      
          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()才可以