如何走上天台,窗体嵌入任务栏
分类:技术

奥门金沙网址 1

=

    最近写了个小程序,用于将固态硬盘的写入量等信息显示在任务栏,最开始使用Windows API也可以实现,但是当任务栏托盘增加的时候,会被遮盖,最终采用了DeskBand来实现,填了很多坑。

悲歌一曲心如剜,泪问苍天堪无情

 

可是啊,可是!现实既残酷又无耐!在那个时代,城乡差别真是很大!广大的农民,他们只是挣工分,生活的景况艰难,生存的条件不好。

你看看,农民们的耕作,还是传承千百年来的方式:肩抗手挖,看天吃饭。生产工具原始,生产力低下。农民们依然是脸朝黄土背朝天,没有一点点现代农业的生产气息。

农民们的生活,依然像村后的大山,古老又原始,沉重又艰难。

那时啊!农民们羡慕城里人,羡慕那些拿工资、手捧金饭碗的人。他们生活优裕啊!

年青的农民们,更是渴望逃出乡村,奔进工厂,奔进城市。

“山茶花妹妹,我的中学生活,是多么辛苦。你知道,自我去上中学,你就再没见过我。那时,我几乎都呆在学校,我全身心地投入学习,家少回。

三年高中结束,我幸运考上春城一所名校。回家的时候,我听传闻,说你到外地打工去了。”

山茶花忧忧地点头,伤悲泪盈地说:“你走了之后,我在村里过得很无味。上学不成,生产队也没有了,分到的那点田地,也没多少事去做。

烦人的是,我爹骂我,我妈逼我,硬要我嫁给那位土财主一一黄似仁的儿子。那小子,像他爹一样地坏。

  我心里只有你啊!”

山茶花用幽怨的目光看着我。她呼吸沉重,神情又一下凝重,泪水又哗哗滴落。

“泥巴哥,该死的泥巴哥!”她突地站起,又嚎啕起来,用双手拍打我。

她像发疯一样,披头散发,泪流满面。拍打我,又撕捶她。我看她这么痛苦的样子,心想,是不是我伤她太深?还是她经历了怎样的惨痛啊!

听她带着尖叫的哭诉,我的心,收的很紧,很紧,紧的就要碎裂。

奥门金沙网址 2

“泥巴啊泥巴!你想象不到;那时,我是怎么地过的?死的心都有!

母亲又是劝,又是骂。父亲逼我,打我,关我。我就是不从!我就不想嫁黄麻子!

有天晚上,父亲喝醉了,像死猪一样睡在地上。我偷偷跑出家门,一路跑着去找你。”

雨,不停地下。天,漆黑一片。路,又滑又泥。一个少女,边哭边走,边跑。不时摔了一跤,又蹒跚着前行。

泥巴想向着山茶花逃走时的情景。那情那景,像久远的梦幻,哀怨而凄然。

山茶哭着诉说,她显得悲愤痛苦。

“我一口气跑到你上学的学校。可是大门紧闭,任我怎样叫,怎样拍打门,就是无人开门。

哥,我找你,就是要让你带我走,让你救我。让我把一个女人最宝贵的贞洁给你!

可是,可是我还是在你学校门前,被父亲与黄似仁的麻子儿子抓去。”

奥门金沙网址 3

你是第一次捡到钱包,就在学校北门进门左拐的那条小道上,就在拖着箱子到这的第一天。里面的钱不多,导致你一度想要占为己有,你可不是什么高尚的人。但是你翻了翻钱包,又放弃了这个想法,你看到了那张成绩条,上面印着她的名字。其实你也不认识她,只不过在上次来复试的时候在公示信息栏上看到过这个名字。

你拖着箱子、气喘吁吁地来到宿舍的时候,里面已经有了一个人,他热情地接过你手中的行李,你们便攀谈起来。于是你得知,对面这人和你是一个学院的同学,早在暑假的时候就被导师叫到学校开始干活。你心想他到这两个多月,也称得上是老油条了,便向他晃了晃手中的钱包,打听它主人的事。

“我知道有这么个人,是咱们这届的同学,”他说道。

“长什么样,漂亮吗?”你笑着问。

“没见过,我只知道有这么个人,”他说,“不过······”

“不过什么?”

“我在大课题组群里见过她qq号,我发给你。”

你就这样拿到了她的qq,但她并没有马上加你。一直到晚上十点、你都快要上床休息时,她才同意了你的好友申请,她问你是谁,你便把事情一五一十说了。她也没马上回你,过了好一会儿,她才说:“谢谢你,明天有空吗?如果有空麻烦你上午11:00之前帮我送到实验楼1205办公室进门左拐第二张桌子上。”你回了一句“好的”,对话便结束了。

第二天早上你如期而至,但没有见到她。你问旁边的人,答曰:“估计在实验室忙呢。”你便把钱包放在她桌上,然后给她发了条消息,她回了一句“好的,谢谢你”就没了下文。

中午躺在床上,你热得睡不着,玩起手机来。你点进她的qq空间,却发现自己没有权限访问。一连几天,你天天点进去,看到的依然是“主人设置了权限”这七个字。你心里嘀咕这人也太不懂礼貌了吧,帮她找回了钱包,就简简单单一句谢谢,而且连人面都没见着,不说要千恩万谢,给个访问空间的权限总是可以的吧?

“太不会做人了!”你放下手机倒头继续睡了起来。

你就在这第一堂课上见到了她,也不是什么机缘啊、邂逅啊,总归是要见面的,毕竟是同一个届、同一个专业的。你对新事物总有一种好奇心,所以一坐、进去,就开始打量着教室里的男男女女。她就坐在那最后面的一排,长得是一副娃娃脸,齐刘海,梳着一个马尾辫,看上去没有特别出彩的地方,但这长相、这身段倒也算得上可爱,很清纯。不过教室里比她好看的有好几个,你也就没再特别地注意她。甚至你都不知道她就是钱包的主人,因为你坐在前面,点名的时候不好往身后一个个地看。

过了很久你才把她的模样和名字对上号,这时你便不再觉得她可爱。准确地说她的外形是可爱的,但她这个人——用你的话来讲——太不会做人了。

到这里也有些日子了,但你和她从来没有说过话,这不奇怪,班里并不是所有人都熟,大家平时也是各忙各的。有天中午你从办公室出来,按了电梯在那里等。她从走廊另一头过来,脚步声惊动了你,你抬眼看了看原来是她。你觉得她脸熟,她看你估计也脸熟,但脸熟并没有让你们互相打一声招呼。她和你对视了一眼,便转头望着别处。你不知道她的想法,也不想知道,于是故作冷漠地埋下头继续玩你的手机。很快电梯到了,你便把手机收进裤兜。里面就你们俩人,她站在电梯前部的角落,你站在她对角线上的角落。你就站在那里打量着她,只能看到侧脸,她没什么表情,就那样默默地注视着前方。你也是个冷漠的人——正所谓道不同不相为谋——她的那股冷漠劲突然打动了你的心。

你渐渐地开始关注起她来。这小鼻子小嘴的,很符合东方人的审美;身高比大部分女生稍高一点,身材则不胖不瘦,很健康;发型永远是那样,甚至都没去烫过;偶尔穿一两件比较时髦的衣服,但大部分时候打扮得都挺普通的,你最喜欢看她穿着那身纯色的外套,配上她的牛仔裤和帆布鞋。

就这么一年多过去了,你早已不再讨厌她,但从那次在电梯相遇后,你们见面时也依然没有说过一句话。说实话,你已经有点喜欢上她了,这从你后面好多次见她时的眼睛里就能看出,你总是喜欢看似不经意地注视着她。你也喜欢装作不经意的跟别人打听她,早先,你以为像这样姿色还可以,而且看上去乖乖的女生,应该很招人疼,大概早已有男朋友了,可后来你听人说不是这样的,她还是单身,因为她以后想考博士,现在全身心都扑在学习上,没有搞其他东西的心思。你感到有点好笑,但也很欣慰。

转机出现在后来一次快放假的时候,她那时必须得把导师的任务完成了才能回家过年,但人手不够,课题组的其他同学也基本上很快就要回家。有个朋友在闲聊时问你什么时候走,你说你放假了想先在学校这边玩玩,买的是腊月二十七的机票。朋友便对你说起此事,还问你愿不愿意去帮忙,你则装出有点勉强的姿态答应了下来。期盼的那天很快就到来了。其实你去帮忙的目的并不是想和她发生点什么,只是她那模样,那神态,那份气场对你有种吸引力,谁会拒绝和这样的人待在一起呢?于是你走进她的实验室,你好啊?她没有立即回应,愣了一下,有一些拘谨,随后点了一下头,把你请进了屋子。在你四处打量之际,她报了一堆材料来,逐个向你交代工作的流程和注意事项,你嗯哦的应着,有些心不在焉,但她好像没有察觉。她做起事来很认真,脸上没有太多表情,但也并不显得冷酷。每当你有记不住的东西向她提问时,她总是很耐心的解答,没有显示出一丁点的不耐烦。你慢慢地才发现她也是个温情的人,你讲笑话时她也会笑。

你们总是忙到很晚。去吃夜宵吗?有一天你对她说。好啊,她用手拂了拂耳边的头发,并且回答着你。你笑了,她也笑了。饭桌上总是要说点什么的,你们聊起很多事情:童年、家庭、学校,她说话的时候脸上总挂着温情的笑容,但那笑容毫不做作,这幅模样儿对你的心来说就像是酒精一样使人沉醉。

“你是哪里人?”你问她。

“我家是山东的。”

“山东?山东哪里?”

“泰安,怎么?你去过山东吗?”

“我也是山东的啊,我家在济宁。”

你们的共同语言便又多了一层,心灵上的距离感也在慢慢变小。从这以后每晚你都会送她回宿舍,路上总是走得很慢,你也不知道是因为你走得慢还是她走得慢。有一天晚上在回去的路上,你突然想起来问她准备什么时候回家。

“我买了29号的机票,”她说道。

“29号是农历什么时间?”

她看了看手机,“腊月二十。”

奥门金沙网址,“要不改签吧,”你有点半开玩笑的说,“改到跟我同一天的那个航班,我是腊月二十七飞济南。”

“为什么要我改签?”她用一副天真无邪的表情盯着你。

“为了我?”她离你很近,近到动一动手便可以碰到对方,你甚至可以感觉到她的呼吸和心跳,正是这种情境、这种感觉让你敢于说出这话。她没有立马接招,只是冲你笑了笑,那是一种内敛的笑,你看得出来不是嘲笑、也不是假笑,但你也说不清那笑是什么意思。你们很快到了宿舍楼下,就在那里分道扬镳。你以为自己说错了话,这事没戏了,但不一会儿,她在微信上给你发消息问你的航班号,又过了一会儿,她把改签过的航班信息截图发给了你。你简直有点喜不自胜,在床上打起滚来,惹得旁边的舍友关切地问你是不是肚子疼。

事情也是凑巧,你和她在飞机上的座位是挨着的,都不用去麻烦别人换位。你便抓住这点和她大谈特谈缘分,但你们俩讲话都很隐晦,就像是古人作诗那样,云山雾罩。你们聊了一路,无奈这飞机太快,两个小时对你和她来说就像手机开机关机那么快。在机场分别的时候,你感觉到她有些恋恋不舍。

你们就那样各自拖着行李看着对方,于是你便先开了口,“抱一下吧?这都要分别了。”

她有一点害羞,但还是笑了。你便不等她回答,走上去抱住她,你的动作很慢很轻,也不显得粗鲁,因此并无旁人盯着你们看。她缓缓地把头靠在你肩上,什么话也没说。过了一会儿,你尝试着在她脸颊上亲了一下,她也没有抗拒。

你感到是时候了,“我听说你不谈恋爱的?”

“嗯。”

“做我女朋友行不行。”

“嗯。”

你终于也发自内心地笑了。

    参考的GitHub地址:

我不愿意和异性亲近!因为我心里一直就有那么一个结!有时候它逼得我好像要喘不过气来,我只能试着转移自己的注意力,我把一切精力都投入到学习中去,百分之一百的心无旁骛,我没法不这么做,因为我只要有一刻闲下来,就会想起它,一想起它,我就有一种想要拼命抽打自己的冲动,我觉得自己很坏、很无能、不配享受任何东西。

我去看过心理医生,被诊断为抑郁症。医生给我开了药,并嘱咐我一定要按时吃,但我并没有照做,因为药物会使我无法集中注意力、不能专心学习,我现在除了学习还有什么呢?什么也没有了!因此我自作主张断了药。你一定无法理解我的痛苦,那种心灵上的痛苦甚至要甚于皮肉之苦,不信?我手臂内侧的伤口可以证明一切,过去我常拿一些利物伤害自己,这样可以让我暂时忘却心中的噩梦,如果你能体验到我的百分之一的感受,就一定能理解我为什么没法不这么做。

我没有想过要自杀。我承认我想到过这个概念,但从没有要去实施。放弃生命对我来说是不可能的,我觉得没有人能够很容易地放弃生命,即使是像我这样的人。我们活着、所做的一切事,我们每天吃饭睡觉、我们和人交往、我们工作、我们在这个星球上繁衍生息,难道不就是为了生命得以更好地延续吗?我是断然不肯放弃生命的——即使我心中的痛苦每天都在折磨着我。

那天我收到他好友验证消息之后看了看他的qq资料,是个男的。我说过我不愿意和异性亲近,因此我对他的回复很冷淡,虽然他是个热心肠,捡到了我的钱包要还给我。我真的没法不这么做,我一想到要和一个异性面对面交流,心中的噩梦就又卷土重来,一股羞耻感会把我包裹住,把我花了很长时间平静下来的心再次搅动起来,所以我很冷淡地对他说把我的钱包放在我办公室的桌子上。我不想和异性有太多交集,如果他当面还给我,出于礼貌我是不是得对他表示十分的感谢?我是不是还得请他吃饭?我是不是还得在饭桌上和他聊天,为了不冷场拼命地想出话题?我不愿意做这些事情!我本身就是个冰冷的人,再加上我的那个心结,让我和异性呆在一起就像在把我凌迟。

有几次我感觉到他在看我,这也使我痛苦,是的,单单是异性的关注就足以使我痛苦,我把头扎进被子里想要忘记这些事情,但非常难,人越是不愿意去想什么,那些想法就越会往脑袋里钻!更可怕的是这种向我脑袋里钻的东西竟然使我逐渐地开始关注起他来,没有任何人能够察觉,因为我总是小心翼翼,因为我觉得单是让人知道我有这些想法就足以使我羞愧地无地自容,我不愿意让任何人知道。我记得《傲慢与偏见》里夏洛蒂曾经有过一番议论,大意是说假如一个女人在她心爱的男子面前极力地掩盖自己的心意,那么她也就拥有失去了得到他的心的机会。我知道我永远也不可能得到他的心,因为他看起来很冷漠,甚至他在看我时总让我觉得盛气凌人。但对我来说得不到反而是最好的,得到了会使我羞愧得想杀了自己。

可是爱情还是来了,放寒假的时候我需要人来实验室帮忙,我的一个朋友找了他来,尽管我不愿意和异性相处,但是那时候学校里已经找不到别人了,况且人家来帮忙,我哪有理由往外赶?我只能在心里默默地祈祷我的那些坏想法不要在我工作的时候折磨我。

在实验室刚开始和他相处的时间里,我总是要不断地面对自己的心魔,我总是装出一副不食人间烟火的样子,一丝不苟地工作。可是人毕竟是有情感的动物啊!每天和他在一起工作、交流,使我慢慢地在自己的心堤上决了一个口,我的情感就从这口子处向外流。我感觉得到我和他在慢慢靠近,我感觉得到他的心意,可是我总是在拷问自己,我真的能够面对他吗?他会接受我吗?我觉得我还没有准备好,因此我也就发乎情止乎礼,并没有过于暧昧的举动。

那天他要我改签机票,和他坐同一个航班回家,我问他为什么?理由呢?“为了我。”我不知道该怎么回答他,这就像是最后通牒一样,可是我根本没有做好准备迎接它,我只能对他笑笑。我觉得我的内心有千军万马在搏斗,我觉得我不配享受爱情,爱情会让我感到羞愧,可是在这些日子的相处中,我不得不承认我的心和他的心被绑在一起了,我该怎么办?我不知道,我用手拼命敲打着脑袋,最终我决定要和过去做一个了断,人总是要向前走的。

于是我真的改签了航班,飞机上我们也相谈甚欢,后来在机场分别的时候,他还提出要抱一下我。当我把头靠在他肩上的时候,我觉得天旋地转,好像过去的一切都没有发生过,我只觉得很幸福,这种感觉我已经很久没有体验过了。

可是所有的幸福感都是短暂的,在我们从机场挥手告别之后,那种耻辱感,那种使我心痛的力量又向我袭来,整个过年期间我都在和它做着斗争。每当我想起这段感情中幸福的点滴,那种黑暗的力量就会沉重地砸在我的心口,我的痛苦似乎被他察觉到了,他在电话里问我是不是遇到了什么事,我沉默了很久,最终还是决定说出那句话:“我心里确实有事,等我们都回学校,我们再聊好吗?我想把事情对你说清楚。”

那天还是在那间实验室里,我把门关上,他就坐在我的面前。我的心已经像一锅开水了,我感觉我随时都可能昏倒,我不知道他会怎么样,或许他会接受我?我真的不知道,但是我马上就要开口了,我觉得很冷,手不住地哆嗦。

“你把电脑打开,”我说。

他按我的吩咐做了。似乎是因为意识到事情并不简单,他沉默着,什么也没说。

我在浏览器输入那个让我痛苦一生的网址,咬着牙、但同时又镇定地对他说:“你看看吧。”

浏览器的画面上有一对赤身裸体的男女在交织着,我强迫着自己看着它,可是我无法做到,我的眼皮就像有千钧之力一样覆盖住我的眼睛。我就那样站在那里,听不到自己的哭声,但是感觉得到眼泪不住地往下流。虽然我的眼睛闭上了,可是那画面在我脑海里清晰的不得了,因为我已经看过一千零一遍了!况且那视频的声音还在不断地冲击着我,不错,那是我声音,我每听到一声,就像心被人割了一刀。

他站起来,又坐下。他的手无意义地搓弄着鼠标,我听得见他沉重的呼吸声。他最终还是向我发问了,“这是你?”

我再一次闭上了眼,感受得到眼泪仍然在往下流,“嗯。”

“那个男人是谁?”

“我的前男友,视频是我上大一时拍的。”

“自愿的?”

“自愿的。”我这时倒没有要昏倒的感觉了,但是他坐着,我站着,这让我感觉到自己像是在被审问,我受不了这种感觉,于是我用手扶着椅背,缓缓地坐下。

他挤出一丝冷笑,“我还以为你是个纯洁的天使,你知道吗?”

“我知道。”我很诧异自己竟然会作出回答,我甚至没有感觉得到我说出的这句话。

“今天的事我不会告诉别人,但是我们以后也不要有任何交集了,就当没认识过吧。”他说完,推开门走了。

我坐在那里,回想着这一切,感到有一种不真实感,但这一切都确确实实发生了:年少无知时候录下的性爱视频,分手之后被放上了网络;我悄悄地在网上搜索自己的名字和学校,惊喜地发现并没有痕迹;高中同学发来一个链接并问我“这是你吗”;经历一番折磨后重新振作,并向别人撒谎说自己只想学习不想找男朋友,以此来逃避现实;以及今天和他的事。这一切都历历在目,我觉得我的世界塌了下来。我太痛苦了,比以前的痛苦更胜一筹,他击碎了我的幻想,我想用“他并不爱我,只是在意我的肉体”来安慰自己,可是屈辱感使我歇斯底里地大哭起来,无法平静。

性爱是我的权利,不应该受到别人的指责,可是现实就是这般残酷,它戴上钢铁的面具,举着剑向我扑来,我却毫无还手之力。我说过我会热爱生命,绝不轻言放弃生命,但此刻我竟然走上了这天台,丝毫没有回头的打算。

    DeskBand相关代码如下:

COLORREF:

奥门金沙网址 4奥门金沙网址 5

// This code snippet was used by SharpShell.
//

using System.Drawing;
using System.Runtime.InteropServices;

namespace MyDiskInfo.Interop
{
    [StructLayout(LayoutKind.Sequential)]
    public struct COLORREF
    {
        public COLORREF(Color color)
        {
            Dword = (uint)color.R + (((uint)color.G) << 8) + (((uint)color.B) << 16);
        }

        public uint Dword;
        public Color Color
        {
            get
            {
                return Color.FromArgb(
                    (int)(0x000000FFU & Dword),
                    (int)(0x0000FF00U & Dword) >> 8,
                    (int)(0x00FF0000U & Dword) >> 16);
            }
        }
    }
}

View Code

DESKBANDINFO:

奥门金沙网址 6奥门金沙网址 7

using System;
using System.Runtime.InteropServices;

namespace MyDiskInfo.Interop
{
    /// <summary>
    /// Receives information about a band object. This structure is used with the deprecated IDeskBand::GetBandInfo method.
    /// </summary>
    [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
    public struct DESKBANDINFO
    {
        /// <summary>
        /// Set of flags that determine which members of this structure are being requested. 
        /// </summary>
        /// <remarks>
        /// This will be a combination of the following values:
        ///     DBIM_MINSIZE    ptMinSize is being requested.
        ///     DBIM_MAXSIZE    ptMaxSize is being requested.
        ///     DBIM_INTEGRAL   ptIntegral is being requested.
        ///     DBIM_ACTUAL     ptActual is being requested.
        ///     DBIM_TITLE      wszTitle is being requested.
        ///     DBIM_MODEFLAGS  dwModeFlags is being requested.
        ///     DBIM_BKCOLOR    crBkgnd is being requested.
        /// </remarks>
        public DBIM dwMask;

        /// <summary>
        /// Point structure that receives the minimum size of the band object. 
        /// The minimum width is placed in the x member and the minimum height 
        /// is placed in the y member. 
        /// </summary>
        public POINT ptMinSize;

        /// <summary>
        /// Point structure that receives the maximum size of the band object. 
        /// The maximum height is placed in the y member and the x member is ignored. 
        /// If there is no limit for the maximum height, (LONG)-1 should be used. 
        /// </summary>
        public POINT ptMaxSize;

        /// <summary>
        /// Point structure that receives the sizing step value of the band object. 
        /// The vertical step value is placed in the y member, and the x member is ignored. 
        /// The step value determines in what increments the band will be resized. 
        /// </summary>
        /// <remarks>
        /// This member is ignored if dwModeFlags does not contain DBIMF_VARIABLEHEIGHT. 
        /// </remarks>
        public POINT ptIntegral;

        /// <summary>
        /// Point structure that receives the ideal size of the band object. 
        /// The ideal width is placed in the x member and the ideal height is placed in the y member. 
        /// The band container will attempt to use these values, but the band is not guaranteed to be this size.
        /// </summary>
        public POINT ptActual;

        /// <summary>
        /// The title of the band.
        /// </summary>
        [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 255)]
        public String wszTitle;

        /// <summary>
        /// A value that receives a set of flags that define the mode of operation for the band object. 
        /// </summary>
        /// <remarks>
        /// This must be one or a combination of the following values.
        ///     DBIMF_NORMAL
        ///     The band is normal in all respects. The other mode flags modify this flag.
        ///     DBIMF_VARIABLEHEIGHT
        ///     The height of the band object can be changed. The ptIntegral member defines the 
        ///     step value by which the band object can be resized. 
        ///     DBIMF_DEBOSSED
        ///     The band object is displayed with a sunken appearance.
        ///     DBIMF_BKCOLOR
        ///     The band will be displayed with the background color specified in crBkgnd.
        /// </remarks>
        public DBIMF dwModeFlags;

        /// <summary>
        /// The background color of the band.
        /// </summary>
        /// <remarks>
        /// This member is ignored if dwModeFlags does not contain the DBIMF_BKCOLOR flag. 
        /// </remarks>
        public COLORREF crBkgnd;

        /// <summary>
        /// The view mode of the band object. This is one of the following values.
        /// </summary>
        [Flags]
        public enum DBIF
        {
            /// <summary>
            /// Band object is displayed in a horizontal band.
            /// </summary>
            DBIF_VIEWMODE_NORMAL = 0x0000,

            /// <summary>
            /// Band object is displayed in a vertical band.
            /// </summary>
            DBIF_VIEWMODE_VERTICAL = 0x0001,

            /// <summary>
            /// Band object is displayed in a floating band.
            /// </summary>
            DBIF_VIEWMODE_FLOATING = 0x0002,

            /// <summary>
            /// Band object is displayed in a transparent band.
            /// </summary>
            DBIF_VIEWMODE_TRANSPARENT = 0x0004
        }

        /// <summary>
        /// The set of flags that determine which members of this structure are being requested by the caller. One or more of the following values:
        /// </summary>
        [Flags]
        public enum DBIM
        {
            /// <summary>
            /// ptMinSize is requested.
            /// </summary>
            DBIM_MINSIZE = 0x0001,

            /// <summary>
            /// ptMaxSize is requested.
            /// </summary>
            DBIM_MAXSIZE = 0x0002,

            /// <summary>
            /// ptIntegral is requested.
            /// </summary>
            DBIM_INTEGRAL = 0x0004,

            /// <summary>
            /// ptActual is requested.
            /// </summary>
            DBIM_ACTUAL = 0x0008,

            /// <summary>
            /// wszTitle is requested.
            /// </summary>
            DBIM_TITLE = 0x0010,

            /// <summary>
            /// dwModeFlags is requested.
            /// </summary>
            DBIM_MODEFLAGS = 0x0020,

            /// <summary>
            /// crBkgnd is requested.
            /// </summary>
            DBIM_BKCOLOR = 0x0040
        }

        /// <summary>
        /// A value that receives a set of flags that specify the mode of operation for the band object. One or more of the following values:
        /// </summary>
        [Flags]
        public enum DBIMF : uint
        {
            /// <summary>
            /// The band uses default properties. The other mode flags modify this flag.
            /// </summary>
            DBIMF_NORMAL = 0x0000,

            /// <summary>
            /// Windows XP and later: The band object is of a fixed sized and position. With this flag, a sizing grip is not displayed on the band object.
            /// </summary>
            DBIMF_FIXED = 0x0001,

            /// <summary>
            /// DBIMF_FIXEDBMP
            /// Windows XP and later: The band object uses a fixed bitmap (.bmp) file as its background. Note that backgrounds are not supported in all cases, so the bitmap may not be seen even when this flag is set.
            /// </summary>
            DBIMF_FIXEDBMP = 0x0004,

            /// <summary>
            /// The height of the band object can be changed. The ptIntegral member defines the step value by which the band object can be resized.
            /// </summary>
            DBIMF_VARIABLEHEIGHT = 0x0008,

            /// <summary>
            /// Windows XP and later: The band object cannot be removed from the band container.
            /// </summary>
            DBIMF_UNDELETEABLE = 0x0010,

            /// <summary>
            /// The band object is displayed with a sunken appearance.
            /// </summary>
            DBIMF_DEBOSSED = 0x0020,

            /// <summary>
            /// The band is displayed with the background color specified in crBkgnd.
            /// </summary>
            DBIMF_BKCOLOR = 0x0040,

            /// <summary>
            /// Windows XP and later: If the full band object cannot be displayed (that is, the band object is smaller than ptActual, a chevron is shown to indicate that there are more options available. These options are displayed when the chevron is clicked.
            /// </summary>
            DBIMF_USECHEVRON = 0x0080,

            /// <summary>
            /// Windows XP and later: The band object is displayed in a new row in the band container.
            /// </summary>
            DBIMF_BREAK = 0x0100,

            /// <summary>
            /// Windows XP and later: The band object is the first object in the band container.
            /// </summary>
            DBIMF_ADDTOFRONT = 0x0200,

            /// <summary>
            /// Windows XP and later: The band object is displayed in the top row of the band container.
            /// </summary>
            DBIMF_TOPALIGN = 0x0400,

            /// <summary>
            /// Windows Vista and later: No sizing grip is ever displayed to allow the user to move or resize the band object.
            /// </summary>
            DBIMF_NOGRIPPER = 0x0800,

            /// <summary>
            /// Windows Vista and later: A sizing grip that allows the user to move or resize the band object is always shown, even if that band object is the only one in the container.
            /// </summary>
            DBIMF_ALWAYSGRIPPER = 0x1000,

            /// <summary>
            /// Windows Vista and later: The band object should not display margins.
            /// </summary>
            DBIMF_NOMARGINS = 0x2000
        }
    }
}

View Code

POINT:

奥门金沙网址 8奥门金沙网址 9

// This code snippet was used by SharpShell.
//
using System.Runtime.InteropServices;

namespace MyDiskInfo.Interop
{
    /// <summary>
    /// The POINT structure defines the x- and y- coordinates of a point.
    /// </summary>
    [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
    public struct POINT
    {
        /// <summary>
        /// The x-coordinate of the point.
        /// </summary>
        public int X;

        /// <summary>
        /// The y-coordinate of the point.
        /// </summary>
        public int Y;
    }
}

View Code

RECT:

奥门金沙网址 10奥门金沙网址 11

using System.Runtime.InteropServices;

namespace MyDiskInfo.Interop
{
    [StructLayout(LayoutKind.Sequential)]
    public struct RECT
    {
        public RECT(int left, int top, int right, int bottom)
        {
            this.left = left;
            this.top = top;
            this.right = right;
            this.bottom = bottom;
        }


        public int left, top, right, bottom;

        public int Width()
        {
            return right - left;
        }

        public int Height()
        {
            return bottom - top;
        }

        public void Offset(int x, int y)
        {
            left += x;
            right += x;
            top += y;
            bottom += y;
        }

        public void Set(int left, int top, int right, int bottom)
        {
            this.left = left;
            this.top = top;
            this.right = right;
            this.bottom = bottom;
        }

        public bool IsEmpty()
        {
            return Width() == 0 && Height() == 0;
        }
    }
}

View Code

Attributes:

奥门金沙网址 12奥门金沙网址 13

本文由奥门金沙网址发布于技术,转载请注明出处:如何走上天台,窗体嵌入任务栏

上一篇:三五年内必超天猫,他还有一双残破的手掌 下一篇:我何德何能,时间管理类工具商业模式的反思
猜你喜欢
热门排行
精彩图文