| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1584 人关注过本帖
标题:如何数组中的值依次赋值给自定义的Button?
取消只看楼主 加入收藏
misslucky
Rank: 1
等 级:新手上路
帖 子:11
专家分:4
注 册:2009-8-14
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
如何数组中的值依次赋值给自定义的Button?
我首先在资源文件里定义了10个自定义Button
……DAYTEXT
……
CONTROL DAYTEXT,Day1,"Button",WS_CHILDWINDOW|WS_VISIBLE|BS_BOTTOM|BS_CENTER|BS_OWNERDRAW,12,45,18,15
CONTROL DAYTEXT,Day2,"Button",WS_CHILDWINDOW|WS_VISIBLE|BS_BOTTOM|BS_CENTER|BS_OWNERDRAW,30,45,18,15
……
并定义了一个数组
days db 10 dup(0)               
在初始化对话框的时候,通过自己写的函数改变了数组的值,并想用SetDlgItemText函数来将改变后的值依次显示对应每个Button上
mov esi,offset days
xor ecx,ecx
.while ecx<10
     invoke SetDlgItemText,hWnd,DAYTEXT,DWORD ptr[esi+ecx]
     inc ecx
这样可行吗?
搜索更多相关主题的帖子: 自定义Button上的文字 
2009-08-16 14:45
misslucky
Rank: 1
等 级:新手上路
帖 子:11
专家分:4
注 册:2009-8-14
收藏
得分:0 
我把按钮的ID换成不同的
……
CONTROL "",ID1,"Button",WS_CHILDWINDOW|WS_VISIBLE|BS_BOTTOM|BS_CENTER|BS_OWNERDRAW,12,45,18,15
CONTROL "",ID2,"Button",WS_CHILDWINDOW|WS_VISIBLE|BS_BOTTOM|BS_CENTER|BS_OWNERDRAW,30,45,18,15
CONTROL "",ID3,"Button",WS_CHILDWINDOW|WS_VISIBLE|BS_BOTTOM|BS_CENTER|BS_OWNERDRAW,30,45,18,15  

……

invoke SetDlgItemText,hWnd,ID1,DWORD ptr[esi+1]
invoke SetDlgItemText,hWnd,ID2,DWORD ptr[esi+2]
invoke SetDlgItemText,hWnd,ID3,DWORD ptr[esi+3]
……
可以吗?
如果定义的按钮一多,有没有简单的方法?
2009-08-16 16:11
misslucky
Rank: 1
等 级:新手上路
帖 子:11
专家分:4
注 册:2009-8-14
收藏
得分:0 
修正一下 是invoke SetDlgItemText,hWnd,ID1,BYTE ptr[esi+1]
……
2009-08-16 16:13
misslucky
Rank: 1
等 级:新手上路
帖 子:11
专家分:4
注 册:2009-8-14
收藏
得分:0 
有个问题,就是我的days都是BYTE类型的,不是应该取字节吗?
还有为什么在.while循环里要保存ecx呢?调用函数SetDlgItemText会改变ecx的值吗?,而且invoke里前一个ecx是ID,后一个是偏移量,两者不同吧?
不知这样可否?
mov esi,offset everyMonth            ;放入数据首址
        mov ecx,Day1        ;计数器初始化为第一个天数按钮的ID
        xor ebx,ebx                ;放偏移量
        .while ecx<Day42+1
            invoke SetDlgItemText,hDlg,ecx,BYTE ptr[esi+ebx]
                            inc ebx
            inc ecx
        .endw

[ 本帖最后由 misslucky 于 2009-8-16 17:32 编辑 ]
2009-08-16 17:11
misslucky
Rank: 1
等 级:新手上路
帖 子:11
专家分:4
注 册:2009-8-14
收藏
得分:0 
谢谢
“并定义了一个数组
days db 10 dup(0)               
在初始化对话框的时候,通过自己写的函数改变了数组的值,并想用SetDlgItemText函数来将改变后的值依次显示对应每个Button上”


我是想把每个按钮改变后的的数字显示在按钮上,如果要写成字符串的话还要对数字进行一下转换,有没有可以直接显示数字的函数呢?
如果是字符串的话怎么初始化?10个“”?
2009-08-16 18:07
快速回复:如何数组中的值依次赋值给自定义的Button?
数据加载中...
 
   



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

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