【备忘录】技术笔记整理。
【原創(chuàng)性聲明】基本上是我平時(shí)編碼時(shí),通過(guò)MSDN,網(wǎng)絡(luò)搜索等記錄的一些技術(shù)性筆記。這些內(nèi)容本質(zhì)上沒(méi)有我的原創(chuàng)性和創(chuàng)新性內(nèi)容,但是因?yàn)楹茈s所以本身并不容易都能一一記住。在這里列出這些條目,已C++為主,沒(méi)有什么中心思想,僅為備忘和查詢使用。
(1)檢測(cè)合法輸入的標(biāo)準(zhǔn)化寫(xiě)法(char*):
char text[]; //待檢測(cè)文本
if( strlen ( text ) != desiredLength || strspn ( text, "1234567890") < desiredLength )
return FALSE;
其中,desiredLength 是輸入內(nèi)容的預(yù)期長(zhǎng)度,"1234567890” 是合法字符集合。
(2)strncpy ( char *dest, const char *source, size_t count ) 的特征:
* 當(dāng) count <= strlen ( source ) 時(shí)不會(huì)在后面自動(dòng)添加 null-terminator,僅執(zhí)行拷貝字符動(dòng)作。
* 當(dāng) count > strlen ( source ) 時(shí),會(huì)在后面補(bǔ) 0,直到拷貝到目標(biāo)緩沖區(qū)的字符個(gè)數(shù)達(dá)到 count 為止。
(3)alloca (size_t size) 用于在棧上分配空間(無(wú)須對(duì)應(yīng)的釋放函數(shù))。
(4)把制定進(jìn)制表示的字符串轉(zhuǎn)換成整數(shù):strtol。
(5)AdjustWindowRectEx 函數(shù):根據(jù)客戶區(qū)矩形測(cè)量出窗口矩形。
提供一個(gè)客戶區(qū)矩形,根據(jù)窗口樣式和擴(kuò)展樣式,是否有菜單等信息,返回能容納該客戶區(qū)矩形的窗口矩形,此窗口矩形然后可以傳遞給 CreateWindowEx 函數(shù)。
(6)如果在構(gòu)造(析構(gòu))函數(shù)中調(diào)用虛函數(shù),則調(diào)用的是自身類型定義的函數(shù)。(這句話表義不太精確,忘記我當(dāng)初記的是什么含義)
(7)MFC 獲取時(shí)間跨度。
CTime time1 ( 2008, 8, 8, 0, 0, 0 );
CTime time2 = CTime :: GetCurrentTime ();
CTimeSpan timespan = time2 - time1;
CString strText;
strText.Format ( _T ( " %d days %d hours " ), timespan.GetDays(), timespan.GetHours ( ) );
(8)在對(duì)話框上添加蝕刻線:
添加 Image 控件,把 Color 屬性改為 Etched。
調(diào)整ComboBox 下拉框高度: 選中 ComboBox, 點(diǎn)擊下拉按鈕,向下拉尺寸框。注意,如果是用 CreateWindow 函數(shù)創(chuàng)建的下拉框,指定的高度不應(yīng)該是文本框高度,而是包含了文本框 + 下拉列表框的總高度。
(9)FlashWindow / FlashWindowEx: 閃爍窗口和任務(wù)欄按鈕。
(10)MessageBeep ( MB_ICONEXCLAMATION ) :發(fā)出系統(tǒng)定義的警告聲。
(11)在用戶界面上繪制標(biāo)準(zhǔn)控件(例如按鈕,右下角的拖動(dòng)三角形圖案):DrawControlFrame。
繪制三維外觀的矩形邊緣:DrawEdge;
繪制焦點(diǎn)矩形:DrawFocusRect。
(12)在 for 循環(huán)中如果用 break 結(jié)束循環(huán),不會(huì)執(zhí)行第三個(gè)分句。例如:
for ( i = 0; i < 1000 ; i ++ ) break;
printf ( " i = %d \n" , i ); //輸出 i = 0;
(13)struct 是一種成員函數(shù)默認(rèn)為 public 的 class。
(14)HRESULT CoFileTimeNow ( FILETIME * lpft ) : 當(dāng)前時(shí)間作為 FILETIME 結(jié)構(gòu)返回。
(15)IActiveDesktop :: SetWallpaper : 設(shè)置桌面壁紙。
(16)控制服務(wù)狀態(tài):ControlService。
(17)_beginthread, _endthread 是 C 運(yùn)行時(shí)庫(kù)函數(shù);
CreateThread 是 WIN32 API。默認(rèn)一個(gè)線程的棧為 1 MB。
ExitThread 可以提供一個(gè)線程退出碼,用 GetExitCodeThread 獲取這個(gè)碼。
(18)EnumDesktops:枚舉當(dāng)前進(jìn)程所在工作站的桌面。
(19)SetProcessWindowStation:設(shè)置進(jìn)程的窗口工作站。
WindowStation 工作站包括以下資源:所有桌面,剪貼板,原子量(這是什么?)
(20)SID:security identifier ,可變長(zhǎng)度的一個(gè)結(jié)構(gòu)體,用于唯一標(biāo)識(shí)用戶或組。
Access Control: 權(quán)限控制 (winme,95,98不支持)。
Securable Object:可以擁有一個(gè)安全描述符的對(duì)象。
Security descriptor: 安全描述符,和一個(gè) securable object 關(guān)聯(lián)。
Security descriptors:包括
SIDs (主人,組),
DACL:針對(duì)特定用戶、組的權(quán)限(允許/拒絕)
SACL:(這是什么?)
一組控制位:指出其自身或成員含義。
securable objects:包括所有命名的windows對(duì)象。一些未命名對(duì)象(例如進(jìn)程,線程)。對(duì)于大多數(shù)對(duì)象,可以在創(chuàng)建他們的API中指定安全描述符,例如:文件,目錄,命名/匿名管道,進(jìn)程,線程,文件映射,access tokens,系統(tǒng)管理對(duì)象(工作站,桌面),注冊(cè)表鍵,系統(tǒng)服務(wù),網(wǎng)絡(luò)共享,進(jìn)程同步對(duì)象(events,mutexes,sepaphors,調(diào)度(job objects),目錄服務(wù)對(duì)象。
Access Token:包含一個(gè)登陸會(huì)話的權(quán)限信息。
(21)獲取系統(tǒng)信息(CPU個(gè)數(shù),CPU類型):GetSystemInfo。
(22)播放wav文件:PlaySound ( _T("....wav"), NULL, SND_FILETIME | SND_ASYNC );
(23)創(chuàng)建快捷方式:SHCreateShortcutEx。
IShellLink 接口:創(chuàng)建,修改,解析快捷方式。
(24)獲取特定文件夾路徑:SHGetFolderPathAndSubDir。
(25)MFC中測(cè)量字符串:CDC::GetOutputTextExtent。
(26)重繪菜單:DrawMenuBar ( HWND )。
(27)獲取對(duì)話框字體大小:GetDialogBaseUnits。
(28)讓 ComboBox 實(shí)現(xiàn)自動(dòng)完成(類似IE地址欄):SHAutoComplete?(注意需要先調(diào)用COM初始化函數(shù))
??? HWND hComboBox = GetDlgItem(hDlg, IDC_COMBO_TEST);
??? HWND hEdit = FindWindowEx(hComboBox, NULL, _T("Edit"), NULL);
??? SHAutoComplete(hEdit, SHACF_DEFAULT | SHACF_FILESYSTEM) ;
(29)關(guān)閉窗口時(shí)動(dòng)畫(huà)效果(例如漸隱):AnimateWindow。
(30)比 CreateProcess 更簡(jiǎn)便的兩個(gè)函數(shù):WinExec, ShellExec。
(31)添加,修改,刪除托盤(Tray)圖標(biāo):Shell_NotifyIcon。
(未完待續(xù))
總結(jié)
以上是生活随笔為你收集整理的【备忘录】技术笔记整理。的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 一加 6T 手机移植开源鸿蒙 OpenH
- 下一篇: Exception handling 笔