【备忘录】技术笔记整理。

简介:     【原创性声明】基本上是我平时编码时,通过MSDN,网络搜索等记录的一些技术性笔记。这些内容本质上没有我的原创性和创新性内容,但是因为很杂所以本身并不容易都能一一记住。在这里列出这些条目,已C++为主,没有什么中心思想,仅为备忘和查询使用。

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

    

    (未完待续)

    

目录
相关文章
|
7月前
|
人工智能 算法
【阅读】一周翻过《构建之法》,笔记整理
🚩 前言 我的阅读方式 我拿到这本书挺久了,之前已经零散地看过一部分,最近一周集中地花了一些时间,将整本书看过了一遍。看得比较粗略,正如“好读书,不求甚解”(我甚至没有去看书中提到的那些参考资料)。
51 0
|
SQL 编解码 算法
陈伟视频知识点整理
陈伟视频知识点整理
88 0
|
程序员 前端开发
关于程序员写好 ppt 的几点总结
程序员日常工作中最多的应该是接收需求、编码实现需求。但也有些时候需要做一些非代码的文字工作。
150 0
关于程序员写好 ppt 的几点总结
|
前端开发 测试技术
测试领域专业术语整理-持续更新
测试领域专业术语整理-持续更新
303 0
|
Web App开发 设计模式 移动开发
近期面试题整理汇总(持续更新)(上)
1.HTML和CSS Html5新增标签和属性
161 0
近期面试题整理汇总(持续更新)(上)
|
存储 Web App开发 自然语言处理
近期面试题整理汇总(持续更新)(下)
• 变量提升与函数提升 • 变量提升: 在变量定义语句之前, 就可以访问到这个变量(undefined) • 函数提升: 在函数定义语句之前, 就执行该函数 • 先有变量提升, 再有函数提升
151 0
近期面试题整理汇总(持续更新)(下)
|
Web App开发 缓存 移动开发
近期面试题整理汇总(持续更新)(中)
我们经常在 url 中看到 #,这个 # 有两种情况,一个是我们所谓的锚点,比如典型的回到顶部按钮原理、Github 上各个标题之间的跳转等,路由里的 # 不叫锚点,我们称之为 hash,大型框架的路由系统大多都是哈希实现的。
202 0
近期面试题整理汇总(持续更新)(中)
|
前端开发 Java 调度
从零开始写项目第五篇【评论功能、备忘录】
在网页上评论功能并不少见,我也想在自己的网站中增加评论功能,好让知道别人对我的网站的看法,还能让别人提醒我哪里出错了。
124 0
从零开始写项目第五篇【评论功能、备忘录】
|
SQL Oracle Java
项目总结整理
项目描述: 写一个登录界面,输入账号密码,对比数据库里面的数据,如果匹配成功的话,跳转到显示“Welcome +用户名”的页面,如果与数据库里面的数据匹配不成功,则留在原页面 项目思路: 建一个用户类,用来传参;建一个dao层,专门连接数据库里面的数据;在WRB-INF文件下建一个html登录界面;建立一个Servlet文件,用于获取登录界面里输入的值,判断User是否为空
113 0