某天闲的蛋疼的时候翻《WPF揭秘》,看到里面提到整个Windows背景都是玻璃效果的窗体。
《WPF揭秘》提供了一段代码,通过一个类GlassHelper封装了PInvoke过来的系统API。想看那段代码的猛击这里
既然是系统API,当然就不只是WPF专用了。拆开了GlassHelper,主要内容就是两个PInvoke签名:DwmExtendFrameIntoClientArea控制窗体的玻璃效果,DwmIsCompositionEnabled检测系统的桌面组合功能是否打开。MARGINS是DwmExtendFrameIntoClintArea需要的参数结构,表达的是窗口四周的边框。实现全玻璃背景,其实就是将有玻璃效果的窗体边框向内扩展,当MARGINS足够大之后,就全变成玻璃状态了。
PInvoke签名
所以,要在Winform里实现玻璃效果,只要
OnLoad
OnPaintBackgroud
通过上面的代码,在重绘背景的时候清除原本要绘制的背景,将透明的窗体底层显示出来。
效果如下
免费才是王道。整理了下关于SQLServer2005Express版的相关下载资源,方便选择。
官方产品页
http://msdn.microsoft.com/zh-cn/express/aa718378.aspx
功能比较页
http://www.microsoft.com/Sqlserver/2005/en/us/compare-features.aspx
系统必备:Security Update for Microsoft XML Core Services 6.0 (KB954459)
Microsoft SQL Server Management Studio Express
Microsoft SQL Server 2005 Express Edition Service Pack 3
Microsoft SQL Server 2005 Express Edition with Advanced Services Service Pack 3
Microsoft SQL Server Management Studio Express Service Pack 3
Microsoft SQL Server 2005 Express Edition 工具包 Service Pack 3
绘图:
要求能够移动图元
数据能和图元自动保持虚线连接并可自由拖拽
能够删除图元
操作:
漫游模式能够在工作区任意拖放DCM图像
易用的界面,图标较大
Dock工具栏。
风格良好,统一美化界面
滤镜:
更高级的降噪算法
组织滤镜,自动CW优化,预设CW调整
功能:
鼠标操作的无极缩放
工作区显示多张图像,n×n
播放连续图像,控制帧速,步进,步退
剪影,前序,半序等
插管定标,血管狭窄度,心脏泵血量测量
性能:
大数据文件操作要求DR,大C,DSA
自定义信息显示于工作区四角,打印要求无失真
与VC6交互(打印、采集)
阶乘
问题代码: FCTRL
问题描述:
GSM网络最重要的部分叫做基站(BTS)。他们在叫做单元的区域传递信号并且每个电话都连接到附近信号最强的基站。当然,基站需要维护。
计算机协会的技师当前面临着一个很有意思的问题。给定一些基站,他们需要找到一个最短路径来遍历所有基站之后返回到公司总部。程序员花了几个月来研究这个,无果。他们找不到足够快的解决方案。很长之间之后,其中一个程序员在一篇论文里发现了这个问题。很不幸,他发现这个问题也叫做“旅行的推销员难题”,它是很难解决的。如果我们有N个基站,用任意顺序访问他们就会得出N!种可能性。这个表达式被叫做级数。一个相对较小的N的阶乘积会是非常大的一个数字。
程序员们知道他们解决不了这个问题。但是因为他们已经从政府那里获得了研究经费,他们必须继续研究,至少得出点成果。这样,他们开始研究阶乘函数的行为。
例如,他们定义了函数Z。对任何的正整数N,Z(N)就是N!的十进制形式后面0的个数。他们发现这个函数是单调递增的。因为我们在两个数相乘的时候不会丢失任何0.函数Z很有意思,所以我们需要一个程序来高效地计算它。
输入
输入的首行是一个正整数T(大约100000),表示接下来输入数字的个数。接下来的T行,每行包含一个1至1000000000之间的正整数。
输出
For every number N, output a single line containing the single non-negative integer Z(N).
示例
输入:
6 3 60 100 1024 23456 8735373
输出:
0 14 24 253 5861 2183837
AC代码-C#
Code
逆序数相加
Problem code: ADDREV
问题描述:
The Antique Comedians of Malidinesia(不知道是什么东东,不会翻)比较倾向于戏剧。不幸的是,大多数古典剧(ancient plays)是悲剧。因此,ACM的戏剧顾问决定把一些悲剧美化成喜剧。 显然, 既要保证剧情的合理又要把所有的事情变成相对的是很困难的。比如数字:如果悲剧中出现数字,就要将他转化成它的逆序以便在戏剧中使用。
逆序数(Reversed number)就是一个数的各位的顺序相反的那个数。第一位变最后一位,反之亦然。例如,如果在悲剧中主角有1245个草莓,那他现在就有5421个了。注意,前导零是忽略的。也就是说,如果一个数以0结尾,那么逆序之后将丢失这些0(比如1200 转换之后就变成了21). 另外,逆序数末尾是不会有0的.
ACM 需要计算这些逆序数,你的任务是将两个逆序数相加并且将它们的和的逆序数输出。当然,结果并不唯一,因为任何 数字都是若干数字的逆序数(例:21 有可能是12, 120 或者 1200 的逆序). 所以我们在这里假设在转换的过程中没有丢失0(对于刚才的例子,假设原始数字就是12).
输入:
输入包含N组数据(大约10000)。第一行是正整数N。然后下面接着是每行一组的数据。每组数据包含用空格隔开的两个正整数。他们就是你将要处理的数。
输出:
每行一组数据,输出两个数的逆序数的和的逆序数。 忽略前导零。
示例:
示例输入: 3 24 1 4358 754 305 794 示例输出: 34 1998 1
AC代码-C#
Code
生命,宇宙,以及一切
问题代码:TEST
问题描述:
你的程序用暴力破解法来获得生命、宇宙以及一切的答案。更精确的说…就是把一些输入的数字再输出。遇到42则停止。所有输入的数字都是一或二位的整数。
示例
输入:
1
2
88
42
99
输出:
1
2
88
AC代码-C#
Code
后记
内容太简单了,没得说了。这题目的仅为测试(问题代码就是TEST)。想了想还是发上来了,做个开端也不错。
一直很奇怪一个现象,市面上甭管是数据结构还是算法分析,大部分的描述语言都是C\C++。这倒没什么,只是连用java做描述语言的都有,就是没有使用C#的。同样,在线ACM网站支持C#的也不多。
一段搜索之后,找到了电驴上找到了本中文版的C#数据结构,据说是哪里的内部教材。 另外就是发现了两个支持C#的在线ACM网站。
Sphere:https://www.spoj.pl/
波兰的Sphere Research Labs旗下网站,是我见过的最好的ACM站了。强烈推荐,废话不多说了,介绍看图。
开始做Sphere上的题了,后面会陆续把翻译和解题发上来。水平有限,凑合参考吧……