解决方案 »
- 对话框上有2个CTreeCtrl控件,我点击按钮,想获得当前有焦点的那个CTree的选择项文本?如何实现?
- VC 高手帮忙
- 怎么样改变combo box下拉箭头的宽度?
- 如何在对话框中响应 backspace键?
- 怎样在主框架出现之前弹出一个对话框?
- 用CFile创建的文件,如何读出文件的一行?
- 怎样知道txt文件中有多少行数的数据
- 有关陆老师《开发指南》18章网络传输问题(怎样支持mpeg4)
- +++++++++========返回一个临时变量的地址可以吗?==========++++++++++
- 我头痛(并非有意灌水,但此间高手多)
- RegisterHotKey注册热键出错。。。。
- 在非模态对话框向视图发送自定义消息
第二个应该是ListCtrl,单击排列明显是ListCtrl的风格,在Report View下。
如果主区域是图片的话,你可以直接用MFC应用程序向导的SDI/MDI程序里View的滚动条。把内容绘制到Document上,View来查看它。不过需要自己处理双缓冲的问题。
如果想放其它空间,可以设置SDI/MDI的View是CFormView。
http://www.codeproject.com/KB/dialog/slidabledialogbar.aspx
自带例子到哪里可以看?我想看看还有什么新内容是我没注意过的回楼主:
第一组问题:用vs 2008 SP1或vs 2010,有个类叫CDockablePane用来管理停靠窗口的,你所谓的可折叠面板叫grid控件,有个类叫CMFCPropertyGridCtrl,可以用来实现你所说的折叠、显示、输入数据、下来组合框,至于tick box复选框,我没用过,估计也是可以的。关于这两个类,可查csdn详细了解,如果想看示例,用vs 2008 SP1或vs 2010新建一个MFC Application工程,到新建工程向导的Advanced features那一页的时候,记住让Properties docking pane(属性停靠窗口)是打钩的,然后你就能看到你要的效果了。第二组问题,listCtrl列表控件。我只用过Report Style的。如果你是在对话框资源上放一个列表控件的话,可以在属性里更改style值,直接Create动态创建的话也可以指定风格。注意SetExtendedStyle这个函数可以把复选框弄到控件里,这个函数详查msdn。滚动条自己有的,不用操心。(对话框资源里的列表控件属性默认是有滚动条的)排序功能有BOOL CListCtrl::SortItems( PFNLVCOMPARE pfnCompare, DWORD dwData);这个函数,但是里面的参数用到回调函数,比较复杂,详细的实现可以百度一下。
可以看到表格有抬头的tag,但我不需要sorting。
表格左侧的文字用static text即可。
表格内部的行是不等高的。一个高行与一个矮行结为一组,如此重复向下延伸。
表格的边框不止有一种线型,而是三种:实线/虚线/不画线
表格底纹可以自由设置颜色。
从行E,列04位置的单元格可以看到点击出现的下拉菜单。菜单里的内容是若干字符串,点选之后显示在单元格内的仅仅是首字母。至少我是希望做成这个效果,如果太麻烦我也可以把下拉菜单内做成单个字母,然后在鼠标悬浮的时候显示的浮动帮助里解释其含义。右侧的工具箱如下图:里面也用到了简单的表格,拖拽工具箱里的图标时,图标浮动并跟随鼠标的光标移动,我是希望给图标加上alpha通道,带些半透明的风格。不知道这个好不好做。
所有需要显示图片的地方我目前只知道两种实现方法,一个是Picture Control控件,另一个是GDI+。我前不久刚做完一个用GDI+结合双缓冲绘制动态图像的软件。界面很复杂,刷新率16Hz。这个界面几乎是静态的,所以我感觉用GDI+应该无鸭梨。2楼推荐的BCG我正在找资料看。回帖的哥们儿都很热心,短短几楼知识量不小,我得消化好一阵子。
非常之不和谐既然都是GDI
何不集中到一个窗口GDI
多好一个窗口的坐标计算比窗口传递快多了
那我孤陋寡人了,真是不知道哇。只不过那些滚动条、下拉菜单之类自己拿GDI+写起来确实比较累。我权衡了一下感觉还是现成的和DIY的混起来用要合适点。
所有的截图可以在这里看到http://blog.csdn.net/akof1314/article/details/5615240
请问自绘的时候以下几样东西是否也一起办了?各种滚动条、各种按钮、在程序设置为不同主题时自绘部分的色调切换、鼠标光标在自绘区域中时出现的单/双击、滚轮输入事件。思路大致都能想出来,包括水平/垂直卷动的时候边缘裁切的问题也都能解决,只是总体架构的模块化结构还不是很清晰,是自己给封装成一堆独立的控件还是直接就在Dlg类里面写写画画?另外还有点搞不清楚的是dockable pane风格的界面上要用GDI+,是每个pane用一组DC还是整个程序用同一个DC,拿着VS生成的框架不知道在哪里插入我的GDI+代码?我感觉应该是整体用一个DC,同一套坐标,否则跨窗口拖拽图标的时候没法画了,而且边框本身也都是GDI画的。不清楚的是如何得到所绘制pane本身的rectangle。还有个问题是对于浮动起来的面板,如果把丫拖到主窗体以外的区域,在这个面板上绘制东西,X、Y坐标是不是在Client Rectangle之外了?这个不会造成一些预料不到的问题吧?这些问题如果LS有兴趣的话请点拨一下,我自己也会上Google逐个搜索解决。非常感谢您的回复。
自绘就是不仅仅包括好看
还包括了,各种滚动,各种按钮等等一切其实你不自绘就是他绘,反正都要绘他绘,你只能看结果,只能动允许你动的部分.
自绘,就是全裸给你看,细化那里都可以动动比方说滚动条:四个对象
向前按钮,向后按钮,主体框,滑块
每个对象无非就是是起点,长度,宽度,背景和编号剩下的就是鼠标消息时候取point.x和point.y做游戏
绑一个窗口指针给他
游戏结果是啥就发个啥消息给帮定的窗口指针
下面就是我自己做的简略的CListCtrl,和CListTabhttp://hi.csdn.net/attachment/201108/2/3069272_13122520887aPr.jpg
停靠和浮动变换的时候从新计算一下位置就可以了
有现成的虚函数RecalcLayout,重载处理就可以了
红色说明部分就可以作为停靠
多谢帮忙。任何一门技术都是细水长流的活,我急也没用,一步一步作着看吧。亲眼看到美国一个做了十多年软件设计的哥们用C#写的软件从第1版到第8版的演化过程。从他每版的界面布局上可以看出他的设计构思变化过程。他这样经验丰富的人都用了半年时间去完善,我就更急不得了。我是把软件拆分成两部分:designing和coding。前一部分基本上包含版面规划、风格设计、功能安排、美工、用户体验设计、文档格式制订、通讯协议制订;后一部分就是代码的实现、运行测试、debug。Coding阶段可以自己先挑毛病,修正design阶段没设计好的细节,反复修改到自己满意后给用户体验,alpha,feedback,beta,feedback,release,patch……现在我的问题就是design阶段的任务已经具有一定规模了,思路还算清晰,界面布局、功能设置、通讯协议、可扩展的整体架构规划都有比较清晰的轮廓了。只是我一直算不上一个好的coder,尤其是VC++、C#之类高级语言平台上的coder。以前的代码基本都是C,平台都是芯片,规模不大,资源不多,最复杂的C应用充其量就是些函数指针。像C++里面指针、句柄满天飞的混乱场面接触不久,还有点晕。不过也在慢慢上手了。我那硬件是USB的。从芯片选型到PCB设计、焊接、固件设计、调试全是自己搞的。这方面经验已经有8年了。