CToolBar m_wndFuncBar;
int m_curTool;
m_wndFuncBar.GetToolBarCtrl().CheckButton(m_curTool,FALSE);
CToolBarCtrl::CheckButton(int nID, BOOL bCheck = TRUE);
锘??xml version="1.0" encoding="utf-8" standalone="yes"?> MFC浠g爜鏀墮泦
#include <io.h> 閫夋嫨鐩綍 聽bi.hwndOwner = NULL; 聽}
m_tbCtr.GetItem(m_tbCtr.GetCurSel(), &item); 緇欑郴緇熻彍鍗曟坊鍔犲叧浜庨夐」 Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=885908
2006-03-30 14:24
璁╁垪琛–ListCtrl絎竴鍒楀眳涓樉紺?br />LVCOLUMN聽聽 lvc;
lvc.mask聽聽 =聽聽 LVCF_FMT;
m_list2.GetColumn(0, &lvc);
lvc.fmt聽聽 &=聽聽 ~LVCFMT_JUSTIFYMASK;
lvc.fmt聽聽 |=聽聽 LVCFMT_CENTER;
m_listLayer.SetColumn(0, &lvc);
2006-03-31 15:49
寰楀埌鏂囦歡澶у皬
struct _stat ST;
_stat(strFileName, &ST);
int nFileSize = ST.st_size;
//鍒楄〃鏁磋閫夋嫨鍜孏ridLine椋庢牸
m_list.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT | LVS_EX_HEADERDRAGDROP/*|LVS_EX_CHECKBOXES*/);
褰撻紶鏍囨彁鐣欏湪鏌愰」涓婃寚瀹氭椂闂存椂鎶婅欏硅涓洪変腑鐘舵併傞渶瑕佸垪琛ㄦ湁LVS_EX_TRACKSELECT椋庢牸
m_ListCtrl.SetExtendedStyle(LVS_EX_TRACKSELECT|LVS_EX_FLATSB|LVS_EX_UNDERLINEHOT);
2006-06-04 16:45
鍒ゆ柇涓涓枃浠舵槸鍚﹀瓨鍦?br />if( _access( lpszFileName, 00 ) == -1 )
/*
00 Existence only 瀛樺湪
02聽 Write permission 鍙啓
04 Read permission 鍙
06 Read and write permission 鍙鍐?br />*/
聽BROWSEINFO bi;
聽char dispname[MAX_PATH],path[MAX_PATH];
聽ITEMIDLIST *pidl;
聽bi.pidlRoot=0;
聽bi.pszDisplayName=dispname;
聽bi.lpszTitle="璇烽夋嫨澶囦喚鐩綍錛?;
聽bi.ulFlags=BIF_RETURNONLYFSDIRS|BIF_EDITBOX|BIF_DONTGOBELOWDOMAIN ;
聽bi.lpfn=0;
聽bi.lParam=0;
聽bi.iImage=0;
聽if(pidl=SHBrowseForFolder(&bi))
聽{
聽聽SHGetPathFromIDList(pidl,path);
聽聽m_strBackPath = CString(path);
2006-07-06 17:41
//鑾峰彇CTabCtrl鐨勬爣絳炬枃瀛?br />TCHAR szBuf[256];
TCITEM item;
item.mask= TCIF_TEXT;
item.pszText= szBuf;
item.cchTextMax= sizeof(szBuf)/sizeof(TCHAR);
SetDlgItemText(IDC_EDIT2, szBuf);
聽CMenu* pSysMenu = GetSystemMenu(FALSE);
聽if (pSysMenu != NULL)
聽{
聽聽CString strAboutMenu;
聽聽strAboutMenu.LoadString(IDS_ABOUTBOX);
聽聽if (!strAboutMenu.IsEmpty())
聽聽{
聽聽聽pSysMenu->AppendMenu(MF_SEPARATOR);
聽聽聽pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
聽聽}
聽}聽
聽
CToolBar m_wndFuncBar;
int m_curTool;
m_wndFuncBar.GetToolBarCtrl().CheckButton(m_curTool,FALSE);
CToolBarCtrl::CheckButton(int nID, BOOL bCheck = TRUE);
聽
CTabCtrl* pTabCtrl = m_sheet.GetTabControl();
if(pTabCtrl)
{
pTabCtrl->ModifyStyle(0, TCS_BOTTOM);
}
榪欎釜鏄垜鐨勫疄鐜頒唬鐮侊細
CRect rect;
DWORD dwStyle = WS_CHILD | WS_VISIBLE;
DWORD dwStyleEx = WS_EX_CONTROLPARENT;
m_sheet.AddPage(&m_dlgFileBack);
m_sheet.AddPage(&m_dlgFileDel);
m_sheet.Create(this, dwStyle, dwStyleEx);
CTabCtrl* pTabCtrl = m_sheet.GetTabControl();
if(pTabCtrl)
{
pTabCtrl->ModifyStyle(0, TCS_BOTTOM);
}
榪欐牱榪愯鐨勬椂鍊欏氨浼氬嚭鐜頒笅闈㈢殑鏍峰瓙錛屽氨鏄爣絳懼彧鑳界湅鍒板皬灝忕殑涓鏉★紝鍏朵粬鐨勯兘鐪嬩笉鍒般?
榪欎釜闂鑺變簡鎴戝緢闀挎椂闂達紝鏈鍚庡湪鍑嗗鍙戝笘瀛愯闂殑鏃跺欐墠紿佺劧鎯沖埌鍘熷洜
甯屾湜瀵歸亣鍒板悓鏍烽棶棰樼殑鏈嬪弸鏈夌偣甯姪
鍘熸潵錛屽垱寤篊PropertySheet鐨勬椂鍊欙紝鑷姩鍒涘緩浜嗕竴涓狢TabCtrl,鎴戜滑鍙互鐢–PropertyShhet::GetTabControl()寰楀埌璇abCtrl鐨勬寚閽?
濡傛灉瑕佹斁鍒頒笅闈㈠氨瑕佹敼鍙樿繖涓猅abCtrl鐨勫ぇ灝忥紝鍚﹀垯灝變細閬綇灞炴ч〉鏍囩
瀹屾暣鐨勪唬鐮佸涓嬶細
CRect rect;
DWORD dwStyle = WS_CHILD | WS_VISIBLE;
DWORD dwStyleEx = WS_EX_CONTROLPARENT;
m_sheet.AddPage(&m_dlgFileBack);
m_sheet.AddPage(&m_dlgFileDel);
m_sheet.Create(this, dwStyle, dwStyleEx);
CTabCtrl* pTabCtrl = m_sheet.GetTabControl();
if(pTabCtrl)
{
pTabCtrl->ModifyStyle(0, TCS_BOTTOM);
}
// 璋冩暣灞炴ц〃鍒伴潤鎬佹澶у皬
CWnd* pWnd = (CWnd*)GetDlgItem(IDC_STATIC_SHEET);
if(pWnd)
{
CRect rect;
pWnd->GetWindowRect(rect);
ScreenToClient(rect);
m_sheet.MoveWindow(rect);
//
// 璋冩暣TabCtrl澶у皬
//
// rect.top += 5;
// rect.left += 5;
rect.bottom -= 5;
rect.right -= 10;
if(pTabCtrl)
{
pTabCtrl->MoveWindow(rect);
}
//
// 璋冩暣褰撳墠媧誨姩欏靛ぇ灝?
//
rect.top += 5;
rect.left += 5;
rect.bottom -= 20;
rect.right -= 20;
CPropertyPage* page = m_sheet.GetActivePage();
if(page)
{
page->MoveWindow(rect);
}
pWnd->ShowWindow(SW_HIDE);
}
]]>SYSTEMTIME/WINDOWSTIME
SYSTEMTIME鐨勫畾涔夋槸榪欐牱
鍏堟彁涓棶棰橈紝濡備綍璁$畻褰撳墠鏃墮棿100澶╀互鍚庣殑鏃墮棿錛屽湪win32涓?/font>
1.SYSTEMTIME
聽聽聽聽{
聽聽聽聽WORD聽wYear;
聽聽聽聽WORD聽wMonth;
聽聽聽聽WORD聽wDayOfWeek;
聽聽聽聽WORD聽wDay;
聽聽聽聽WORD聽wHour;
聽聽聽聽WORD聽wMinute;
聽聽聽聽WORD聽wSecond;
聽聽聽聽WORD聽wMilliseconds;
聽聽聽聽}聽SYSTEMTIME;
寰堝ぇ錛屾誨叡16涓瓧鑺傘備綘鍙互璋冪敤GetSystemTime鏉ュ彇寰楀綋鍓嶇殑鏃墮棿
::GetSystemTime(&st);
2. FILETIME
FILETIME鐨勫畾涔夋槸榪欐牱鐨?br />
聽聽聽聽{
聽聽聽聽DWORD聽dwLowDateTime;
聽聽聽聽DWORD聽dwHighDateTime;
聽聽聽聽}聽FILETIME;
//or
__int64聽d2;
memcpy(&d2,&st,sizeof(d2));
杞寲涓篲_int64鏄竴涓互100綰崇涓哄崟浣嶇殑鍊?br />1ms (姣) 1姣=0.001縐?10-3縐?millisecond) 1渭s (寰) 1寰=0.000001=10-6縐?microsecond) 1ns (綰崇) 1綰崇=0.000000001縐?10-9縐掞紙nanosecond) 1ps (鐨) 1鐨=0.000000000001縐?10-12縐?/font> 1fs (椋炵) 1椋炵=0.00000000000001縐?10-15縐?/font>
SYSTEMTIME鍙互閫氳繃SystemTimeToFileTime鏉ヨ漿鍖栦負FILETIME
3.Window Time
::GetTickCount()鍙互榪斿洖褰撳墠鐨勪互寰涓哄崟浣嶇殑鏃墮棿錛岀敤鍦ㄧ簿搴﹁姹備笉楂樼殑鍦哄悎錛岃繑鍥炵殑鍙槸涓涓狣WORD錛屽洓瀛楄妭銆傞珮涓鐐圭殑浣跨敤timeGetTime
濡備綍璁$畻褰撳墠鏃墮棿100澶╀互鍚庣殑鏃墮棿錛屽湪win32涓?br />搴旇榪欐牱鍐?br />
SYSTEMTIME聽st;
::GetSystemTime(&st);
FILETIME聽f;
::SystemTimeToFileTime(&st,&f);
ULARGE_INTEGER聽now;
memcpy(&now,&f,sizeof(now));
now聽+=聽100*nano100SecInDay;
memcpy(&f,&now,sizeof(f));
FileTimeToSystemTime(&f,&st);
鏈鍚庯細闄勪笂鎴戝啓鐨勪竴涓皬宸ュ叿錛屽垹闄ゆ寚瀹氭枃浠跺す涓嬮潰鐨勮繃鏈熸枃浠剁殑涓涓伐鍏鳳紝騫跺彲浠ュ浠斤紝鏀寔瀛愭枃浠跺す宓屽銆?br />
#include聽<cstdio>
#include聽<string>
using聽namespace聽std;
const聽__int64聽nano100SecInDay=(__int64)10000000*60*60*24;
ULARGE_INTEGER聽now;
int聽days聽=聽14;
bool聽backup聽=聽false;
string聽dst_dir;
string聽backup_dir;
void聽make_sure_dir_exist(string聽&聽file)
{
聽聽聽聽int聽tag聽=聽2;
聽聽聽聽while(true)
聽聽聽聽{
聽聽聽聽聽聽聽聽tag聽=聽file.find_first_of("\\",tag+1);
聽聽聽聽聽聽聽聽if(tag!=-1)
聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽string聽tmp聽=聽file.substr(0,tag);
聽聽聽聽聽聽聽聽聽聽聽聽::CreateDirectory(tmp.c_str(),NULL);
聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽else
聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽break;
聽聽聽聽聽聽聽聽}
聽聽聽聽}
}
void聽xdel(const聽char聽*dir)
{
聽聽聽聽char聽tempFileFind[1024];
聽聽聽聽sprintf(tempFileFind,"%s\\*.*",dir);
聽聽聽聽
聽聽聽聽WIN32_FIND_DATA聽ffd;
聽聽聽聽HANDLE聽hFind;
聽聽聽聽hFind聽=聽::FindFirstFile(tempFileFind,&ffd);
聽聽聽聽
聽聽聽聽if(hFind聽==聽INVALID_HANDLE_VALUE)
聽聽聽聽{
聽聽聽聽聽聽聽聽printf("can't聽find聽%s\n",dir);
聽聽聽聽聽聽聽聽return;
聽聽聽聽}
聽聽聽聽
聽聽聽聽while(true)
聽聽聽聽{
聽聽聽聽聽聽聽聽//printf("find聽%s\n",ffd.cFileName);
聽聽聽聽聽聽聽聽FILETIME聽&ft聽=聽ffd.ftLastWriteTime;
聽聽聽聽聽聽聽聽ULARGE_INTEGER聽ui;
聽聽聽聽聽聽聽聽memcpy(&ui,&ft,sizeof(ui));
聽聽聽聽聽聽聽聽__int64聽t聽=聽now.QuadPart-ui.QuadPart;
聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽if(ffd.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)
聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽if(strcmp(ffd.cFileName,聽".")聽&&聽strcmp(ffd.cFileName,聽".."))
聽聽聽聽聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽char聽temp[1024];
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽sprintf(temp,"%s\\%s",dir,ffd.cFileName);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽xdel(temp);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽if(t>=nano100SecInDay*days)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽if(::RemoveDirectory(temp))
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽printf("del聽dir聽%s聽ok\n",temp);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽else
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽printf("del聽dir聽%s聽failed\n",temp);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽else
聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽char聽temp[1024];
聽聽聽聽聽聽聽聽聽聽聽聽sprintf(temp,"%s\\%s",dir,ffd.cFileName);
聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽if(t>=nano100SecInDay*days)
聽聽聽聽聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽if(backup)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽string聽backup_file聽=聽temp;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽backup_file.replace(0,dst_dir.length(),backup_dir.c_str());
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽make_sure_dir_exist(backup_file);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽if(::MoveFile(temp,backup_file.c_str()))
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽printf("backup聽file聽%s聽ok\n",temp);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽else
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽printf("backup聽file聽%s聽failed\n",temp);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽else
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽SetFileAttributes(temp,FILE_ATTRIBUTE_NORMAL);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽if(::DeleteFile(temp))
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽printf("del聽file聽%s聽ok\n",temp);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽else
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽printf("del聽file聽%s聽failed\n",temp);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽if聽(!FindNextFile(hFind,聽&ffd))聽
聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽break;
聽聽聽聽聽聽聽聽}
聽聽聽聽}
聽聽聽聽FindClose(hFind);
}
int聽main(int聽argc,char聽**聽argv)
{
聽聽聽聽if(argc<2)
聽聽聽聽{
聽聽聽聽聽聽聽聽printf("usage:聽xdel聽directory聽/d=聽/m=\n");
聽聽聽聽聽聽聽聽printf("[optional]聽/d:聽config聽the聽expired聽days,default聽is聽14聽days\n");
聽聽聽聽聽聽聽聽printf("[optional]聽/m:聽config聽the聽backup聽directory\n");聽
聽聽聽聽聽聽聽聽printf("for聽example:聽xdel聽d:\\test聽/d=10聽/m=d:\\backup");
聽聽聽聽聽聽聽聽return聽1;
聽聽聽聽}
聽聽聽聽
聽聽聽聽for(int聽i=1;i<argc;++i)
聽聽聽聽{
聽聽聽聽聽聽聽聽string聽tmp聽=聽argv[i];
聽聽聽聽聽聽聽聽if(tmp.find("/d=")!=-1)
聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽int聽d聽=聽atoi(tmp.substr(3).c_str());
聽聽聽聽聽聽聽聽聽聽聽聽if(d!=0)
聽聽聽聽聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽days聽=d;
聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽else聽if(tmp.find("/m=")!=-1)
聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽backup聽=聽true;
聽聽聽聽聽聽聽聽聽聽聽聽backup_dir聽=聽tmp.substr(3);
聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽else
聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽dst_dir聽=聽tmp;
聽聽聽聽聽聽聽聽}
聽聽聽聽}
聽聽聽聽
聽聽聽聽//Get聽system聽time
聽聽聽聽SYSTEMTIME聽st;
聽聽聽聽::GetSystemTime(&st);
聽聽聽聽FILETIME聽f;
聽聽聽聽::SystemTimeToFileTime(&st,&f);
聽聽聽聽memcpy(&now,&f,sizeof(now));
聽聽聽聽
聽聽聽聽xdel(argv[1]);
聽聽聽聽
聽聽聽聽return聽0;
}
]]>
pStat = (CStatic*)GetDlgItem(鎺т歡ID);
聽聽聽聽聽聽 pStat->ModifyStyle(SWP_NOZORDER, SS_ICON);
聽聽 鍙敤涓ょ鏂規硶澧炲姞鍥炬爣
(1)聽聽聽 pStat->SetIcon(AfxGetApp()->LoadIcon(鍥炬爣ID));
(2)聽聽聽 pStat->SetIcon(LoadIcon(::AfxGetInstanceHandle(),鈥濆浘鏍囧悕縐扳?); //鍥炬爣鍚嶅瓧鏀逛負鈥淚DI_ICON鈥濈殑褰㈠紡錛屽洜涓鴻繖閲岃姹傜殑鏄瓧絎︿覆褰㈠紡鐨勫悕縐般?/p>
聽聽 澧炲姞Bmp鍥劇墖鐨勫艦寮忓悓涓婏紝灝哅odifyStyle涓殑SS_ICON鏀逛負SS_BITMAP銆傜敤鐩稿簲鐨勪綅鍥懼鍔犲嚱鏁板嵆鍙?/p>
2錛幝?CClientDC錛孋WindowDC
榪欎袱涓被閮戒粠CDC綾繪淳鐢燂紝CClientDC綾葷敤浜庤幏鍙栧鎴峰尯鐨凞C錛堜笉鍖呮嫭鏍囬鏍忥紝鑿滃崟鏍忥紝宸ュ叿鏍忥級錛屽垱寤轟簡CClientDC綾誨璞″悗涓嶉渶鐢≧eleaseDC鏉ラ噴鏀俱傚錛?/p>
CCleintDC dc(this);鑾峰彇鏈獥鍙g殑dc錛孋ClientDC dc(GetParent())鍙幏鍙栫埗紿楀彛DC錛屾鏃跺氨鍙湪闈炲鎴峰尯榪涜dc鎿嶄綔銆?/p>
CWindowDC 鑾峰彇鏁翠釜紿楀彛鐨刣c錛屽彲瀵規暣涓獥鍙h繘琛屾搷浣滐紝CWindowDC(GetParent())銆娉ㄦ剰鍦ㄨ繖鑾峰緱鐨勭埗紿楀彛瀵逛簬瀵硅瘽妗嗘儏鍐典笅灝嗘槸windows紿楀彛錛屾渶鍚庢棤闇ReleaseDC閲婃斁
GetDesktopWindow()鑾峰彇妗岄潰紿楀彛鍙ユ焺銆?/p>
::CreateIC("DISPLAY",NULL,NULL,NULL);鑾峰彇妗岄潰鐨凥DC
3錛幝?鑾峰彇闅忔満鏁皉and()
瑕佽幏鍙栦竴瀹氳寖鍥村唴鐨勯殢鏈烘暟鍙敤錛?/p>
Srand((unsigned) time(NULL));聽聽 //鎰忔濇槸姣忔浜х敓鐨勯殢鏈烘暟閮戒笉鐩稿悓.
(int)(rand())/(float) RAND_MAX * 10); //榪斿洖1錛?0涔嬮棿鐨勯殢鏈烘暟
聽4錛幝?鑾峰彇璺緞錛?/p>
char path[MAX_PATH] = "\0";
聽GetModuleFileName(NULL, path, MAX_PATH);聽 //搴旂敤紼嬪簭璺緞
聽GetSystemDirectory();聽 //鑾峰彇Windows緋葷粺鐩綍璺緞
聽GetWindowDirectory()聽 //鑾峰彇Windows鐩綍璺緞
聽5錛幝?鍔ㄦ佸姞杞絆DBC鏁版嵁婧?/p>
//mdbName涓烘暟鎹簱鍚嶇О, DSN涓烘暟鎹簮鍚嶇О
聽void聽 SetODBCSource(char * mdbName ,char * DSNName)聽
{
聽聽聽聽聽聽 char path[256]="";
聽聽聽聽聽聽 char pathMDB[256]="";
聽聽聽聽聽聽 GetAppPath(path);
聽聽聽聽聽聽 strcpy(pathMDB,path);
聽聽聽聽聽聽 strcat(pathMDB, "\\");
聽聽聽聽聽聽 strcat(pathMDB, mdbName);
聽聽聽聽聽聽 char MdbConfig[256]= "DSN=" ;// pwd
聽聽聽聽聽聽 strcat(MdbConfig , DSNName);
聽聽聽聽聽聽 char * pMconfig = MdbConfig + strlen(MdbConfig) + 1 ;
聽聽聽聽聽聽 strcpy(pMconfig,"DBQ=");
聽聽聽聽聽聽 pMconfig += 4;
聽聽聽聽聽聽 strcat(pMconfig,pathMDB);
聽聽聽聽聽聽 pMconfig += strlen(pathMDB) + 1 ;
聽聽聽聽聽聽 strcpy(pMconfig,"DEFAULTDIR=");
聽聽聽聽聽聽 strcat(pMconfig,path);
聽聽聽聽聽聽 strcat(pMconfig,"\0");
if(!SQLConfigDataSource(NULL,ODBC_ADD_SYS_DSN,"Microsoft聽 Access
Driver (*.mdb)\0",MdbConfig))聽 //娉ㄦ剰Driver鍚庣殑絀烘牸
聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽 TRACE("鍔犺澆鏁版嵁搴撳け璐?璇鋒鏌ユ暟鎹簱鏄惁瀛樺湪\n");
聽聽聽聽聽聽聽聽聽聽聽聽聽 return;聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽 }
6錛幝?綰跨▼閫鍑?/p>
綰跨▼閫鍑鴻浣跨敤return 鎴?ExitThread()鏉ユ甯擱鍑虹嚎紼嬶紝灝芥槸閬垮厤浣跨敤TerminateThread鏉ョ粓姝㈢嚎紼嬶紝鍥犱負緇堟鍚庣嚎紼嬭祫婧愬皢涓嶄細琚噴鏀俱?/p>
涓鑸儏鍐典笅鍦–reateThread鍒涘緩浜嗙嚎紼嬪悗鍗充嬌鐢–loseHandle()鏉ュ叧闂嚎紼嬪彞鏌勶紝浠ラ槻姝erminateThread寰楀埌鍙ユ焺鍚庯紝榪涜綰跨▼鐨勫己鍒剁粓姝€?/p>
聽7錛幝?鑷畾涔夊畯媯鏌ラ敊璇疊OOL閿欒銆?/p>
#define ASSERT_ERROR(Code)\
{\
聽聽 If (Code)\
聽聽聽聽聽聽 AfxMessageBox(鈥滄彁紺? 鈥?;\
聽聽 Else \
聽聽聽聽聽聽 AfxMessageBox(鈥滈敊璇?鈥?;\
}
瀹氫箟浠ュ悗鍙湪闇瑕佷嬌鐢ㄧ殑鍦版柟浣跨敤錛屽錛欱OOL bStat = TRUE;
ASSERT_ERROR(bStat); //姝ゆ椂灝嗘墽琛屸滄彁紺?鈥濓紝bStat = FALSE鏃舵墽琛屸滈敊璇?鈥?/p>
聽8錛幝?灝嗙▼搴忓姞鍏ユ敞鍐岃〃鍚姩欏癸細
LPCTSTR lpcAppPath = 鈥滅▼搴忚礬寰勨?
CString str = 鈥淪OFTWARE\\Microsoft\\Windows\\CurrentverSion\\Run鈥?
HKEY hResult;
RegOpenKey(HKEY_LOCAL_MACHINE, (LPCSTR)str.GetBuffer(0), &hResult);
RegSetValueEx(hResult, 鈥滅▼搴忓悕縐扳? 0, REG_SZ, (const unsigned char*)lpcAppPath,
聽聽聽聽聽聽 Sizeof(char) * strlen(lpcAppPath));
RegCloseKey(hResult);
聽9錛幝?紼嬪簭璋冭瘯
鍦ㄨ皟璇曠幆澧冧笅鐨刅laue紿楀彛涓緭鍏モ?@err,hr鈥濄鍙繑鍥炲綋鍓嶅彂鐢熺殑閿欒鍘熷洜
聽10錛幝犅犅犅犅犅犅?鑾峰彇宸ュ叿鏉℃寚閽堬紝宸ュ叿鏉℃湁涓鐗規畩鏍囪瘑(AFX_IDW_TOOLBAR)
CToolBar *pTool = (CToolBar*)AfxGetMainWnd()->GetDescendantWindow(鐗規畩鏍囪瘑)
;
鑾峰彇鐘舵佹潯鎸囬拡銆?/p>
(CStatusBar*)AfxGetMainWnd()->GetDescendantWindow(AFX_IDW_STATUS_BAR);
聽鑾峰彇涓葷獥鍙f寚閽堬細
CMainFrame *pFrame = (CMainFrame*)(AfxGetApp()->m_pMainWnd);
鑾峰彇瑙嗙被鎸囬拡錛?/p>
CMyView *pView= CMyView*)((CMainFrame*)AfxGetApp()->m_pMainWnd)->GetActiveView();
聽
鎴?/p>
聽
CMyView *pView=(CMyView*)GetActiveView();
11錛庢樉紺烘垨闅愯棌浠誨姟鏍?
聽::ShowWindow(::FindWindow(鈥淪hell_TrayWnd鈥? NULL, SW_SHOW)錛岄殣钘忕敤SW_HIDE
聽12錛庝嬌鐢ㄥ熀浜庡璇濇鐨勭▼搴忓湪浠誨姟鏍忛殣钘忋?/p>
聽This->ModifyStyleEx(WS_EX_APPWINDOW, 0);
聽13錛庡彧鍏佽紼嬪簭榪愯涓涓疄渚嬶細
聽HANDLE h_Muex = CreateMutex(NULL, TRUE, m_pszAppName);
聽If (GetLastError() == ERROR_ALREADY_EXISTS)
聽聽聽 Return False;