|
//刪去字元串兩端的空格
void Trim(CString* str) { str->TrimLeft(); str->TrimRight(); }
//刪去兩端空格後,判斷一個字元串是否為空
bool IsEmpty(CString* str) { Trim(str); if (str->IsEmpty()) return true; else return false; }
//根據一個字元串(各項用回車隔開)顯示列表框
void DisplayComboItems(CComboBox* ctrl,CString str) { int pos[2]={0,0}; while (true) { pos[1]=str.Find('\n',pos[0]); if (pos[1]==-1) { ctrl->AddString(str.Right(str.GetLength()-pos[0])); break; //如果已到字元串末尾,就停止 } ctrl->AddString(str.Left(pos[1]).Right(pos[1]-pos[0])); pos[0]=pos[1]+1; } }
|
|
//下面是有關ListControl的函數
//獲取選中行(只獲取第一行) int GetListCtrlSelect(CListCtrl* ctrl) { POSITION pos=ctrl->GetFirstSelectedItemPosition(); if (pos==NULL) return -1; else return ctrl->GetNextSelectedItem(pos); } //選中一行 void SetListCtrlSelect(CListCtrl* ctrl,int pos) { ctrl->SetItemState(pos,LVNI_SELECTED,LVNI_SELECTED); } //檢測某個字元串是否存在 bool ListCtrlExists(CListCtrl* ctrl,CString str,int subitem) { int count=ctrl->GetItemCount(); //獲取總數 for (int i=0;i<count;i++) { CString str2=ctrl->GetItemText(i,subitem); if (str2==str) return true; } return false; }
|
|
//字元串拆分成數組(分隔符長度必須為1) void StringExplode(CString str,CString symbol,CArray<CString,CString>* array) { int pos[2]={0,0}; while (true) { pos[1]=str.Find(symbol,pos[0]); if (pos[1]==-1) { array->Add(str.Right(str.GetLength()-pos[0])); break; //如果已到字元串末尾,就停止 } array->Add(str.Left(pos[1]).Right(pos[1]-pos[0])); pos[0]=pos[1]+1; } }
|
|
//這個函數用來設置滑鼠是否帶一個沙漏
void SetCursorState(BOOL running) { LPCTSTR lpCursorName=(running)?IDC_APPSTARTING:IDC_ARROW; HCURSOR hCur=LoadCursor(NULL,lpCursorName); SetCursor(hCur); }
|
|
//消息框哈蘇,content和title都是字元串表中的id
int STRTBBox(HWND wnd,int content,int title,unsigned int style) { CString s1,s2; s1.LoadString(content); s2.LoadString(title); return MessageBox(wnd,s1,s2,style); }
|
|
//顯示一個數字的消息框(通常用於調試) void NumberBox(int num) { CString str; str.Format("%d",num); AfxMessageBox(str); }
//獲取ListCtrl某一項的圖標
int GetListCtrlIcon(CListCtrl* ctrl, int id) { LVITEM lvi; lvi.iItem=id; lvi.iSubItem=0; lvi.mask=LVIF_IMAGE; ctrl->GetItem(&lvi); return lvi.iImage; }
//設置ListCtrl風格
void SetListCtrlStyle(CListCtrl* ctrl, int id) { HWND hWnd=ctrl->GetSafeHwnd(); DWORD dwOldStyle=GetWindowLong(hWnd,GWL_STYLE); DWORD dwNewStyle=lvs[id]; if ((dwOldStyle&LVS_TYPEMASK)!=dwNewStyle) { dwOldStyle&=~LVS_TYPEMASK; dwNewStyle|=dwOldStyle; SetWindowLong(hWnd,GWL_STYLE,dwNewStyle); }
//獲取ListCtrl風格
int GetListCtrlStyle(CListCtrl* ctrl) { HWND hWnd=ctrl->GetSafeHwnd(); DWORD dwOldStyle=GetWindowLong(hWnd,GWL_STYLE); dwOldStyle&=LVS_TYPEMASK; for (int i=0;i<4;i++) { if (dwOldStyle==lvs[i]) return i; } return -1; } }
|
|
//根據id獲取StringTable中的字元串
CString GetStr(int id) { CString str; str.LoadString(id); return str; }
//★載入一個DLL文件中的圖標
HICON LoadIconFromDLL(int id, CString filename) { HINSTANCE hInstance=::LoadLibrary(filename); HICON hIcon=LoadIcon(hInstance,MAKEINTRESOURCE(id)); return hIcon; }
|