注册 登录
编程论坛 汇编论坛

如何在窗口的非客户区添加按钮?

okayyyy 发布于 2010-07-22 09:33, 2766 次点击
搜索了下,都是MFC之流的。我实在是看不懂。
能用C或asm写一段代码给我看看吗

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

[ 本帖最后由 okayyyy 于 2010-7-22 09:53 编辑 ]
11 回复
#2
东海一鱼2010-07-22 13:04
MFC是用了控件类进行了封装。实际上在非客户区添加的不是什莫按钮,只是仿真按钮的样子和行为罢了。这一点你可以用SPY++来验证。
代码比较繁琐(ASM处理UI,不是强项啊),我就不写了。只说一点思路:

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

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

以上建议,仅供参考。
#3
你们都要疼我哦2010-07-22 14:17
这个很灵活,可以在资源定义中使用子窗口控件,
也可以在初始化时使用CreateWindow。
具体例子可以看一下win32汇编语言程序设计第5章使用资源和通用控件那部分。

#4
okayyyy2010-07-22 16:46
回复 2楼 东海一鱼
看了下我觉得最简单的:fpuadd.asm。哈哈

靠,起码有10条命令我不认识
#5
okayyyy2010-07-22 16:52
回复 3楼 你们都要疼我哦
我就是拖不动控件,怎么拖他,他还是在客户区

我在去拖拖控件
#6
zklhp2010-07-22 19:50
以下是引用okayyyy在2010-7-22 16:46:44的发言:

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

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

指令不懂可以看指令手册

这个罢 貌似只能自己画 自己处理消息 api的话都得自己弄 比较麻烦 例子我没有。。。。。。
#7
你们都要疼我哦2010-07-22 23:54
资源定义里不是有位置么 自己改呀。
CreateWindow也可以自己设置位置啊。
#8
zklhp2010-07-23 12:25
以下是引用你们都要疼我哦在2010-7-22 23:54:02的发言:

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

问题是 系统处理非客户区绘制的消息会把我们加的东西盖住 很难看 貌似只能自己画~
#9
okayyyy2010-07-24 00:11
刚看了第九章一部分状态栏的代码,哈哈,有思路了。

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

[ 本帖最后由 okayyyy 于 2010-7-24 03:24 编辑 ]
#10
zklhp2010-07-24 10:34
以下是引用okayyyy在2010-7-24 00:11:39的发言:

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

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


关键是要自己处理非客户区的绘制消息、、
#11
okayyyy2010-07-24 15:35
这点有难度,还没接触到,继续往下看
#12
sll08072010-09-19 19:54
非客户区都是图片 自己处理消息网上有
1