2025年04月23日
本文内容来源于我在SDCC2015上的演讲,演讲的主题是关于C++11/14的新特性,通过一些案例和旧标准C++98/03做了对比,展示了新特性在解决问题时的优雅与强大。
C++11/14相比以往的C++98/03在很多方面做了简化和增强,尤其是在泛型编程方面,让C++的泛型编程的威力变得更加强大,本文将用三个案例来介绍C++11相比C++98/03如何以一种更灵活、更简洁和更泛化的方式去解决问题。
检查成员函数是否存在
有这样一个场景,需要判断某个类型是否存在成员函数foo,如果存在就调用这个成员函数,否则就执行默认的函数,下面是伪代码。
2025年04月23日
在C#编程中,了解基本数据类型、字符串和字符、变量和常量以及类型转换是非常重要的。本文将介绍这些基础概念,并提供一些代码示例来帮助您更好地理解。
2025年04月23日
在 Windows Forms 应用程序中,在 Form 上添加多个控件时,通常会发生短暂的屏幕闪烁或重绘。
要最小化或消除闪烁,可以在添加控件或进行其他UI变更之前,暂时禁用 Form 的重绘,并在添加完所有控件后再启用重绘。
可以通过在 Windows API 中使用 SendMessage 函数和特定的消息来实现,尤其是 WM_SETREDRAW 消息。
2025年04月23日
在C#Winform编程中,合理的设计程序热键,使视障用户更加便捷使用
我们都知道,视障人士使用电脑主要是借助屏幕阅读器的朗读和操作,这种辅助操作基本都是通过键盘操作来完成的
2025年04月23日
网络上一大把教你如何从C#程序里面关闭屏幕的例子,但是是有问题,如果用广播的消息,成屏幕再次亮起的时候,C#程序会成为”未响应“。废话不多说,上例子,希望对大家有用。
private const uint WM_SYSCOMMAND = 0x112; //系统消息
private const int SC_MONITORPOWER = 0xF170; //关闭显示器的系统命令
private const int MonitorPowerOff = 2; //2为PowerOff, 1为省电状态,-1为开机
private static readonly IntPtr HWND_BROADCAST = new IntPtr(0xffff);//广播消息,所有顶级窗体都会接收 (重点)消息的第一个参数不能用这个,如果用了这个,等屏幕亮起的时候你的程序会编程无响应,具体原因未知,请大神指点。
[DllImport("user32.dll")]
private static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, int wParam, int lParam);
private void pbx_shutdown_Click(object sender, EventArgs e)
{
shutDownScreen();
}
private void shutDownScreen()
{
SendMessage(this.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, MonitorPowerOff);
isShutDownScreen = true;
unuseTime = 0;
}
private void resetUse()
{
unuseTime = 0;
isShutDownScreen = false;
}
2025年04月23日
在文字的奇妙世界里,字符串算法就像一群神奇的魔法师,帮助我们在海量的文本中快速找到想要的信息。无论是在一篇长篇小说里搜索某个角色的名字,还是在代码中查找特定的函数名,字符串算法都能让这些查找工作变得高效又准确。今天,就让我们一起走进字符串算法的魔法世界,看看它们是如何施展奇妙法术的。