在listctrl中选中一项后需要显示opengl建模的场景,并且在该场景里进行漫游
能不能提供点思路啊,谢谢了大家了
能不能提供点思路啊,谢谢了大家了
解决方案 »
- CDatabase::SetLoginTimeout问题
- 高分求帮助!服务端接收客户端发送过来的结构体信息内的char为乱码
- nikon d90 sdk 开发包,可开发控制拍摄视屏吗?
- 如何在按钮上放置一个位图
- 在对话框架类中获得视类指针,用自己定义静态函数,但出了个小问题,处男贴,急
- 请问有什么方法可以用asp写一个网页给QQ发消息
- 如何(不编程)知道某个文件正被哪个进程使用?
- 用NTService 启动其他程序,新启动的程序没有界面!
- 怎样用cimagelist管理位图?
- 图像处理高手请指教 (急)高分相赠!关于种子填充的问题
- 如何在VC中实现数据库备份
- 如何循环读取注册表中的某一项的键值?(小弟今晚必须做完,请CSDN的兄弟们帮帮忙吧)
然后点击list的时候,更改stage就可以了。
关于list的双击问题。
双击事件()
{
获得选中项的ID;
获得该ID项的文字;
if(文字==**)
stage=*****;
}
或者你直接拿在list中的ID来判断,不过我每次总觉得那个ID有点悬呼呼的,怕它变顺序。
具体的功能函数见MSDN或者百度list 成员函数。
这个就涉及openGL具体的了。
不谈。
漫游倒还好
只是模型是3ds文件用opengl读取并绘制的
而且选择listctrl不同项,相应的3ds文件也不同
就是觉得选中后该怎么响应还是不明白
//区别 的宏
#define STAGE_1 1
#define STAGE_2 2
#define STAGE_3 3init()//openGL初始化
{
....
load3ds("**1.3ds");
load3ds("**2.3ds");
load3ds("**3.3ds");
...
}
render()//GL绘画
{
.. //清空显存中颜色和深度缓存.
.. //基本坐标变换
switch(stage)
{
case STAGE_1:
render3ds(***1.3ds);
break;
case STAGR_2:
....
}
...
}
在listCtrl中重载双击事件:
{
int i=getcursel(); //获得被选中的ID号
CString s;
getitemtext(i,s);//获得该ID号的内容
switch(s)
{
case "***1"
stage=STAGE_1;
break;
case "****2"
stage=STAGE_2;
break;
..
}
}
由于GL的render是不断运行的,它马上会对stage的变化做出反映.
暂时在家中,没装VC,所以没办法给你写出listctrl那些函数的名字.但那些功能都是有。在VC按
->或是.自己查看下吧.}
选中建模已经可以实现了
另外,那个漫游的程序原来是用api函数写的,不知道如何正确加到mfc工程里,现在一次漫游以后关闭绘制模型的窗口,整个程序都会结束,无法重新选择并漫游
你说的这个现象是在MFC里出现的吧.
单文档程序?? 对话框不好吗?这个由于代码的原因我就不好帮了..我无法知道你的问题出在哪里.
自己注意下代码或者问下周围熟悉MFC程序的人吧,把问题给你讲清楚,他看着代码,应该就能解决的..
是一个对话框程序,对话框里有个list,我原来只知道一个程序只能有一个winmain函数,所以就把原来漫游程序winmain函数里的代码(包括CALLBACK WndProc)加到了list的OnClickList操作里面了,我知道这样肯定是不行的(就像出现上面那种问题),但不知道如何下手改
它不会说你winmain() 重复定义了吗??
(你的程序里应该 没CWinApp的子类吧,呵呵)呵呵..没事慢慢来..
加油了,这样的事情你也知道.没办法帮的.慢慢来.都有个过程的.只要努力学就OK.
祝你进展神速..呵呵
我没把winmain()函数定义加进去,只是把函数里面的相关实现代码加进去的,所以才不会有编译错误的吧
但回调函数我还是完整地加进去的(我也不知道为什么加了没报错)
先结贴了
谢谢emptyness(问题事小,结帐事大~)