标题:如何在窗口的非客户区添加按钮?
只看楼主
okayyyy
Rank: 2
等 级:论坛游民
威 望:2
帖 子:102
专家分:70
注 册:2010-6-15
结帖率:81.82%
已结贴  问题点数:20 回复次数:11 
如何在窗口的非客户区添加按钮?
搜索了下,都是MFC之流的。我实在是看不懂。
能用C或asm写一段代码给我看看吗

另外谁给介绍本 浮点指令的书,必须有习题

[ 本帖最后由 okayyyy 于 2010-7-22 09:53 编辑 ]
搜索更多相关主题的帖子: 按钮 客户 窗口 
2010-07-22 09:33
东海一鱼
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:48
帖 子:757
专家分:4760
注 册:2009-8-10
得分:6 
MFC是用了控件类进行了封装。实际上在非客户区添加的不是什莫按钮,只是仿真按钮的样子和行为罢了。这一点你可以用SPY++来验证。
代码比较繁琐(ASM处理UI,不是强项啊),我就不写了。只说一点思路:

因为是要在非客户区绘制,所以要拦截WM_NCPAINT、WM_NCCLICK这些消息,来完成自绘和处理判断是否点击动作。

关于浮点指令,你的要求太高了(还要习题)。建议直接察看masm32\fpulib这个库的源码即可,都是汇编大牛的得意之作。
个人感觉是最好的汇编浮点教科书。

以上建议,仅供参考。

举世而誉之而不加劝,举世而非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。彼其于世未数数然也。
2010-07-22 13:04
你们都要疼我哦
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:火星
等 级:贵宾
威 望:49
帖 子:1296
专家分:2746
注 册:2008-7-13
得分:6 
这个很灵活,可以在资源定义中使用子窗口控件,
也可以在初始化时使用CreateWindow。
具体例子可以看一下win32汇编语言程序设计第5章使用资源和通用控件那部分。


小妹,哥哥看你骨骼清奇,绝非凡人,将来必成大业,不如这样,你先把裤裤脱了,待哥哥为你开启灵窍,然后我们一起努力钻研如何
2010-07-22 14:17
okayyyy
Rank: 2
等 级:论坛游民
威 望:2
帖 子:102
专家分:70
注 册:2010-6-15
得分:0 
回复 2楼 东海一鱼
看了下我觉得最简单的:fpuadd.asm。哈哈

靠,起码有10条命令我不认识
2010-07-22 16:46
okayyyy
Rank: 2
等 级:论坛游民
威 望:2
帖 子:102
专家分:70
注 册:2010-6-15
得分:0 
回复 3楼 你们都要疼我哦
我就是拖不动控件,怎么拖他,他还是在客户区

我在去拖拖控件
2010-07-22 16:52
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
得分:6 
以下是引用okayyyy在2010-7-22 16:46:44的发言:

看了下我觉得最简单的:fpuadd.asm。哈哈

靠,起码有10条命令我不认识

指令不懂可以看指令手册

这个罢 貌似只能自己画 自己处理消息 api的话都得自己弄 比较麻烦 例子我没有。。。。。。
2010-07-22 19:50
你们都要疼我哦
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:火星
等 级:贵宾
威 望:49
帖 子:1296
专家分:2746
注 册:2008-7-13
得分:0 
资源定义里不是有位置么 自己改呀。
CreateWindow也可以自己设置位置啊。

小妹,哥哥看你骨骼清奇,绝非凡人,将来必成大业,不如这样,你先把裤裤脱了,待哥哥为你开启灵窍,然后我们一起努力钻研如何
2010-07-22 23:54
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
得分:0 
以下是引用你们都要疼我哦在2010-7-22 23:54:02的发言:

资源定义里不是有位置么 自己改呀。
CreateWindow也可以自己设置位置啊。

问题是 系统处理非客户区绘制的消息会把我们加的东西盖住 很难看 貌似只能自己画~
2010-07-23 12:25
okayyyy
Rank: 2
等 级:论坛游民
威 望:2
帖 子:102
专家分:70
注 册:2010-6-15
得分:0 
刚看了第九章一部分状态栏的代码,哈哈,有思路了。

1.获取窗口的hdc
2.在非客户区画个框框
3.在非客户区消息中,判断鼠标当前位置。如果在框框范围内,发条自定义消息给窗口过程
4.处理自定义消息

[ 本帖最后由 okayyyy 于 2010-7-24 03:24 编辑 ]
2010-07-24 00:11
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
得分:0 
以下是引用okayyyy在2010-7-24 00:11:39的发言:

刚看了第九章一部分状态栏的代码,哈哈,有思路了。

1.获取窗口的hdc
2.在非客户区画个框框
3.在非客户区消息中,判断鼠标当前位置。如果在框框范围内,发条自定义消息给窗口过程
4.处理自定义消息


关键是要自己处理非客户区的绘制消息、、
2010-07-24 10:34



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-313680-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.147257 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved