【原创性声明】基本上是我平时编码时,通过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。
(未完待续)