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