![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-14 23:54 |
共 47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,268 会员排行 |
| DOS开发编程 & 发展交流 (开发室) » DOS的界面开发终结者 |
| 可打印版本 98,415 / 290 |
| 第121楼 profree | 发表于 2006-09-28 21:43 |
| 中级用户 发帖 132 积分 478 | |
|
确实,现在显示的BMP图片好看多不了,不会变色了
1、增加设置默认项,也就是按回车时执行的默认项 2、修改现在的单选框/复选框 项-按热键为选中 3、显示BMP文件可改变大小,可有两种方式,剪辑或缩放 |
|
| 第122楼 firstsail | 发表于 2006-09-29 03:15 |
| 高级用户 发帖 295 积分 668 来自 广东深圳 | |
|
WinSail V2.0 已重新上传 --- 2006-09-28 15:30
增加了按钮控件的“默认”属性,函数为 CButton::SetDefaultFlags(BOOL bFlags); |
|
| 第123楼 profree | 发表于 2006-09-29 04:11 |
| 中级用户 发帖 132 积分 478 | |
|
老大,太感谢你了
以前我都是把要默认的项放在最前面,现在方便多了 1、能否讲讲滚动条控件怎样使用,比如用在列表框控件或多行编辑框控件 2、滑动条控件、增值控件、和编辑控件三者“绑定”后,怎样才能保证三者的一致, 3、滑动条控件的默认值和“步长”怎么设置 4、进度条怎样设置等时间 5、进度条的表现上能否增加平滑一项,现在的是块状 [ Last edited by profree on 2006-9-29 at 04:15 ] |
|
| 第124楼 firstsail | 发表于 2006-09-29 06:37 |
| 高级用户 发帖 295 积分 668 来自 广东深圳 | |
|
问:(1)滑动条控件的默认值和“步长”怎么设置
答: //设置滑块的范围,相当于“步长” CSliderCtrl::SetRange(DWORD dwMin ,DOWRD dwMax) //获得滑块的范围 CSliderCtrl::GetRange(DWORD* pdwMin ,DOWRD* pdwMax) //设置滑块的位置 CSliderCtrl::SetPos(int nPos) //获得滑块的位置 CSliderCtrl::GetPos() 问:(2)进度条怎样设置等时间 答: “进度条”没有所谓的时间间隔属性。 //设置进度条的范围,相当于“步长” CSliderCtrl::SetRange(DWORD dwMin ,DOWRD dwMax) //获得进度条滑块的范围 CSliderCtrl::GetRange(DWORD* pdwMin ,DOWRD* pdwMax) //设置进度条的位置 CSliderCtrl::SetPos(int nPos) //获得进度条的位置 CSliderCtrl::GetPos() 进度条单词应是“CProgressCtrl”,这里有误,以后改正! |
|
| 第125楼 firstsail | 发表于 2006-09-29 06:39 |
| 高级用户 发帖 295 积分 668 来自 广东深圳 | |
|
上面贴子应该如下所示:
问:(1)滑动条控件的默认值和“步长”怎么设置 答: //设置滑块的范围,相当于“步长” CSliderCtrl::SetRange(DWORD dwMin ,DOWRD dwMax) //获得滑块的范围 CSliderCtrl::GetRange(DWORD* pdwMin ,DOWRD* pdwMax) //设置滑块的位置 CSliderCtrl::SetPos(int nPos) //获得滑块的位置 CSliderCtrl::GetPos() 问:(2)进度条怎样设置等时间 答: “进度条”没有所谓的时间间隔属性。 //设置进度条的范围,相当于“步长” CProcessCtrl::SetRange(DWORD dwMin ,DOWRD dwMax) //获得进度条滑块的范围 CProcessCtrl::GetRange(DWORD* pdwMin ,DOWRD* pdwMax) //设置进度条的位置 CProcessCtrl::SetPos(int nPos) //获得进度条的位置 CProcessCtrl::GetPos() 进度条单词应是“CProgressCtrl”,这里有误,以后改正! |
|
| 第126楼 firstsail | 发表于 2006-09-29 06:57 |
| 高级用户 发帖 295 积分 668 来自 广东深圳 | |
|
关于滚动条的使用 (1) 横向滚动条CHScrollBar的使用(),一般是
<1>分配实例 <2>建立滚动条 <3>设置滚动条的范围 <4>设置滚动条的默认值 <5>注册单击“滚动条左边按钮”事件 <6>注册单击“滚动条拖动中间按钮”事件 <7>注册拖动“滚动条左边按钮”事件 <7>给滚动条分配一个不与其它控件冲突的ID号 void far ClickScroll_Left(CHScrollBar* pScroll) { CDialog* pDialog = (CDialog *)pScroll->GetParent(); //.... } void far ClickScroll_Pos(CHScrollBar* pScroll) { CDialog* pDialog = (CDialog *)pScroll->GetParent(); //.... } void far ClickScroll_Right(CHScrollBar* pScroll) { CDialog* pDialog = (CDialog *)pScroll->GetParent(); //.... } //... CHScrollBar *pScrollBarH1 = new CHScrollBar(pDialog); //分配实例 pScrollBarH1->CreateScrollBar(100, 100, //建立滚动条 180, SCROLL_BAR_WIDTH, NULL); pScrollBarH1->SetRange(0, 10); //设置范围 pScrollBarH1->SetPos(5); //设置默认值 pScrollBarH1->SetScrollLeftRc(); //注册“单击左边按钮”事件 pScrollBarH1->SetScrollPosRc();//注册“拖动中间按钮”事件 pScrollBarH1->SetScrollRightRc();//注册“单击右边按钮”事件 pScrollBarH1->SetID(HSCROLLBASE + 1 - 1); //设置ID号 |
|
| 第127楼 firstsail | 发表于 2006-09-29 06:58 |
| 高级用户 发帖 295 积分 668 来自 广东深圳 | |
|
CHScrollBar *pScrollBarH1 = new CHScrollBar(pDialog); //分配实例
pScrollBarH1->CreateScrollBar(100, 100, //建立滚动条 180, SCROLL_BAR_WIDTH, NULL); pScrollBarH1->SetRange(0, 10); //设置范围 pScrollBarH1->SetPos(5); //设置默认值 pScrollBarH1->SetScrollLeftRc(::ClickScroll_Left); //注册“单击左边按钮”事件 pScrollBarH1->SetScrollPosRc(::ClickScroll_Pos);//注册“拖动中间按钮”事件 pScrollBarH1->SetScrollRightRc(::ClickScroll_Right);//注册“单击右边按钮”事件 pScrollBarH1->SetID(HSCROLLBASE + 1 - 1); //设置ID号 |
|
| 第128楼 firstsail | 发表于 2006-09-29 07:11 |
| 高级用户 发帖 295 积分 668 来自 广东深圳 | |
|
单击了横向滚动条“左按钮”时 , 滚动条会向上层控件返回“VK_SCROLL_LEFT”消息宏
拖动了横向滚动条“中间按钮”时,滚动条会向上层控件返回“VK_SCROLL_HORZ_POS”消息宏 单击了横向滚动条“左按钮”时, 滚动条会向上层控件返回“VK_SCROLL_RIGHT”消息宏 单击了竖向向滚动条“上按钮”时 , 滚动条会向上层控件返回“VK_SCROLL_UP”消息宏 拖动了竖向滚动条“中间按钮”时,滚动条会向上层控件返回“VK_SCROLL_VERT_POS”消息宏 单击了竖向滚动条“下按钮”时, 滚动条会向上层控件返回“VK_SCROLL_DOWN”消息宏 |
|
| 第129楼 firstsail | 发表于 2006-09-29 07:15 |
| 高级用户 发帖 295 积分 668 来自 广东深圳 | |
|
(1)int CObject::SWapping()虚函数是所有控件的消息循环泵。
(2)窗口消息循环,就是不断地调用焦点控件的Swapping()函数。 |
|
| 第130楼 firstsail | 发表于 2006-09-29 07:24 |
| 高级用户 发帖 295 积分 668 来自 广东深圳 | |
|
关于“控件基类的消息泵” 控件基类CObject的消息泵Swapping()函数源代码如下
int CObject::DefaultSwapping() { int nKey = 0; int nX , nY; if (AfxKbhit()) { nKey = ::bioskey(0); } if (nKey != 0) { return (nKey); } ::IsMouseDown(MOUSE_LEFT); nX = ::GetMouseX(); nY = ::GetMouseY(); if ((SystemMouse.statue & MOUSE_LEFT) == MOUSE_LEFT) { if (this->IsClientRect(nX, nY)) { nKey = VK_MOUSE_DOWN_LEFT; } else if (this->IsScreenRect(nX, nY)) { nKey = VK_MOUSE_CLIENT_OUT; if ((m_dwSort & WINDOW_SORT) != WINDOW_SORT) { nKey = 0; } } else { nKey = VK_MOUSE_SCREEN_OUT; } } else if ((SystemMouse.statue & MOUSE_RIGHT) == MOUSE_RIGHT) { if (this->IsClientRect(nX, nY)) { nKey = VK_MOUSE_DOWN_RIGHT; } else if (this->IsScreenRect(nX, nY)) { nKey = VK_MOUSE_CLIENT_OUT; if ((m_dwSort & WINDOW_SORT) != WINDOW_SORT) { nKey = 0; } } else { nKey = VK_MOUSE_SCREEN_OUT; } } if (nKey != 0) { return (nKey); } nKey = this->VirtualKeyboard(); return(nKey); } int CObject::Swapping() { return(this->DefaultSwapping()); } |
|
| 第131楼 profree | 发表于 2006-09-29 22:12 |
| 中级用户 发帖 132 积分 478 | |
|
一、SetDefaultFlags函数有问题,当把某一项设为默认后,按Tab键把焦点移到另外一项,再按回车,执行的并不是焦点所在项,而是设置的默认项,在跟我们现在使用的Windows对话框的操作是不一致的
二、关于鼠标动作的响应问题,应该是鼠标按下直到释放才执行(应该是release吧,现在的是press),比如说在一个按钮上,应该是在按钮内按下鼠标左键,直到左键释放,当然范围也应是在按钮范围内,如果在按钮范围外释放,则操作无效 |
|
| 第132楼 firstsail | 发表于 2006-09-30 01:20 |
| 高级用户 发帖 295 积分 668 来自 广东深圳 | |
|
WinSail 已经重新上传 2006-09-29 13:00
(1)SetDefaultFlags()已经重新“修正” (2)“进度条”类的名称,已由“CProcessCtrl”更名为正确的“CProgressCtrl” |
|
| 第133楼 profree | 发表于 2006-09-30 04:25 |
| 中级用户 发帖 132 积分 478 | |
|
随时和“官方”保持同步更新。
使用哪种字体在哪里设置?在config.sys文件里设置的显示属性起效,但设置的字体不起作用,我只能把字体改为默认的display.fon |
|
| 第134楼 firstsail | 发表于 2006-09-30 04:49 |
| 高级用户 发帖 295 积分 668 来自 广东深圳 | |
|
To Profree:
由于历史原因,Config.Sys文件的[Display]段的Font键是“布尔值”,需要升级为“字符串”类型才行,计划明天早上前更前WinSail 比如说: [Display] Font = "Font\DisplayX.Fon" ; 使用宋体 请告诉我 hzk16C、Hzk16F、HZK16H、HZK16K、HZK16L、HZK16S HZK16V、HZK16X、HZK16Y的字库中文名称是什么 |
|
| 第135楼 profree | 发表于 2006-09-30 05:14 |
| 中级用户 发帖 132 积分 478 | |
|
我的理解是这样的:
Hzk16F--仿宋 HZK16H--黑体 HZK16K--楷体 HZK16L--隶书 HZK16S--宋体 HZK16X--细圆 HZK16Y--幼圆 字体是在这里下载的,也有说明: http://www.cn-dos.net/forum/viewthread.php?tid=18934 |
|
| 上一页 1 … 6 7 8 9 10 11 12 … 20 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |