0: 弹出鼠标右健 //这个是凑个数,因此作0解 :)
void Pop()
{
CMenu menu;
CMenu* popMenu;
menu.LoadMenu(IDR_MENU1);
popMenu=menu.GetSubMenu(0);
CPoint pt; GetCursorPos(&pt);
popMenu->TrackPopupMenu(TPM_LEFTBUTTON,pt.x,pt.y,this);
menu.Detach();
}
1: 得到格式化系统时间日期;
CString GetTime()
{
1:
SYSTEMTIME CurTime;
GetLocalTime(&CurTime);
CString str;
str.Format("%4d%2d%2d %2d:%2d:%2d",CurTime.wYear,CurTime.wMonth,CurTime.wDay......);
return str;
2://这个比较简洁
CString str=CTime::GetCurrentTime().FormatGmt("%m%d%y %H:%M%S");
return str;
}
1.5 :得到逝去时间:)//没想到吧,还有1.5
除了最常用的 GetTickCount()以外,我们还有很多
#include "time.h"
#include "sys/timeb.h"
_timeb starttime,endtime;
void StartTimer()
{
_ftime(&starttime);
}
void StopTimer()
{
_ftime(&endTime);
}
double GetElapsedTime()
{
double msecs=endtime.millitm-startTime.millitm;
double secs=difftime(endtime.time,starttime.time);
return secs+msecs/1000;
}
//其实除了这个还有别的更好的方法
2: ACCESS当前表完整插入不同数据库的另一表中
如果为同一数据库,比较好办,如果是不同的数据库呢,使用
SQL语句则相当的简单:
SQL="select * into b from a in "+'"'+"c://a.mdb"+'"';
意为:
把才c:/a.mdb 中的a表 插入到当前数据库表b中(系统会自动创建b表的结构)
3: 得到当前EXE文件的目录
void GetExePath(CString& strPath)
{
TCHAR buffer[MAX_PATH];
TCHAR driver[MAX_PATH];
TCHAR dir[MAX_PATH];
GetModuleFileName(NULL,buffer,MAX_PATH);
_splitpath(buffer,driver,dir,NULL);
strcat(driver,dir);
strPath.Format("%s",driver);
}
4: 从字符串中返回要找的第一个字符位置 ,从开头以及从结尾找;
#include "string.h"
int GetFirst(char* pFindStr,char ch)
{
char *pdest;
int result;
pdest = strchr( pFindStr, ch );
result = (int)(pdest - pFindStr + 1);
if ( pdest != NULL )
return result;
else
return -1;
}
int GetFirstBackWard(char* pFindStr,char ch)
{
/* Search backward. */
char* pdest;
pdest = strrchr( string, ch );
int result = (int)(pdest - pFindStr + 1);
if ( pdest != NULL )
return result;
else
return -1;
}
}
5:分解字符串
void ExtractStrings(char* str)
{
char str[]="I,u,o,9,j";
int i=0;
CArray<CString> strs;
strs.SetSize(10,5);
while (bFind)
{
bFind=AfxExtractSubString(strs[i],str,i,',');
i++;
}
6: 得到剪贴板文字
CString GetClipBoardText();
{
if(OpenClipboard())
{
CString str;
str.Format("%s",(char*)GetClipboardData(CF_TEXT));
}
CloseClipboard();
}
7:删除文件夹//这个也作凑数解 :)
ENUM 的
void DeleteFileDoc(char* path,bool showProgress)
{
SHFILEOPSTRUCT FileOp;
//add begins...
TCHAR buf[_MAX_PATH+2];
memset(buf,0,sizeof(buf));
_tcscpy(buf,path);
//add ends...
memset(&FileOp,0,sizeof(SHFILEOPSTRUCT));
FileOp.hwnd=m_hWnd;
FileOp.wFunc=FO_DELETE;
FileOp.pFrom=buf; //改一下pFrom指针到buf.
FileOp.pTo=NULL;
FileOp.fFlags=FOF_ALLOWUNDO|FOF_SIMPLEPROGRESS;//|FOF_SILENT;
if(!showProgress)
FileOp.fFlags!=FOF_SLIENT; //不显示进度对话框
FileOp.fAnyOperationsAborted=FALSE;
FileOp.hNameMappings =NULL;
FileOp.lpszProgressTitle ="正在执行删除操作";
int rval=SHFileOperation(&FileOp);
if(rval==0)
{
if(FileOp.fAnyOperationsAborted==TRUE)
{
AfxMessageBox("删除项目操作被取消!",MB_OK);
}
else
{
AfxMessageBox("删除目录操作成功!",MB_OK);
}
}
else
{
AfxMessageBox("删除项目操作失败!",MB_OK|MB_ICONEXCLAMATION);
}
}
8: 捕获 Ctrl+鼠标左键 组合
WM_LBUTTONDOWN消息
//鼠标消息
SHORT iState=GetKeyState(VK_CONTROL);
int i=iState>>7;
if (i==-1)
AfxMessageBox("Ctrl+LButton");