zoukankan      html  css  js  c++  java
  • 【备忘录】技术笔记整理。

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

        

        (未完待续)

        

  • 相关阅读:
    站立会议(3)
    站立会议(2)
    站立会议(1)
    团队报告
    Laravel5.1 模型 --一对多关系
    jQuery 操作DOM
    Laravel5.1 模型 --一对一关系
    Laravel5.1 模型--查询作用域
    Laravel5.1 模型--ModelFactory
    jQuery 选择器
  • 原文地址:https://www.cnblogs.com/hoodlum1980/p/1954901.html
Copyright © 2011-2022 走看看