各位兄弟帮帮忙!!!谢谢

leilei325 2003-06-01 06:13:07
我在设计一个PDA程序中,界面有很多输入项,又不能分开,但对话框长度有限我放了好多edit控件在pda中就显示不出,因此想使对话框能够滚动但试了几次都没有成功,有没有谁能帮帮我,谢谢!!急!!
...全文
22 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
曾经的董胖 2003-06-02
  • 打赏
  • 举报
回复
VC下用ScrollWindow是可以的,但EVC下是不行的。
如果你不怕浪费内存的话,你可以这样做:
定义一个全局UINT数组g_nCtrlIDs存放当前对话框中的所有ID,再定义一个全局RECT数组g_rectCtrls存放当前所有控件的位置。
在InitDialog中记下每个控件的位置:
for(int i = 0; i < sizeof g_nCtrlIDs / sizeof UINT ; i++)
{
this->GetDlgItem(g_nCtrlIDs[i])->GetWindowRect(&g_rectCtrls[i]);
this->ScreenToClient(&g_rectCtrls[i]);
}

定义函数MoveWindowCtrl(int x, int y)
{
RECT rectTemp;
for(int i = 0; i < sizeof g_nCtrlIDs / sizeof UINT ; i++)
{
rectTemp.left = g_rectCtrls[i].left + x;
rectTemp.top = g_rectCtrls[i].top + y;
rectTemp.right = g_rectCtrls[i].right + x;
rectTemp.bottom = g_rectCtrls[i].bottom + y;
this->GetDlgItem(g_nCtrlIDs[i])->MoveWindow(&rectTemp);
}
}

其中x==0, y==0时在原位置,其他的根据你需要定制了。^_^
lizmei001 2003-06-02
  • 打赏
  • 举报
回复
在滚动的时候用SCROLLWINDOW应该可以
我在VC下用过
leilei325 2003-06-02
  • 打赏
  • 举报
回复
由于有较多控件在对话框中画好后到PDA上肯定超出了,你的意思是否要自己动态的画对话框中的控件??这样是不是很麻烦??你有没有遇到过类似的问题?能否给示例代码??谢谢!我在vc下做的一个程序可以动态滚动,用evc在pda上滚动条能够动,但对话框中的控件不会动!!
曾经的董胖 2003-06-01
  • 打赏
  • 举报
回复
你在你的对话框中统一的做一个函数动态地去定位每个控件(加上相对起始座标x0, y0, 便于操作,当然你也可以用其它方法),对话框自身就做成PDA屏幕大小就可以了,增加对话框的滚动条,响应滚动条消息,动态调用定制的函数即可。

19,500

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧