1:我在一个对话框里添加了一个Edit控件和一个List控件,我在Edit控件里填多少数值,List控件里就显示多少列数据,我用EN_CHANG这消息来实现,现在的问题是只要Edit数值一变,List控件就立马刷新,比如最初为1000条数据的显示,而我现在改成10条,那么就得去掉2个0,就是每去1个0,List控件就刷新了1次,但是我想我去掉2个0,让List控件只刷新1次就显示10条数据,该怎么解决呢?2:一个对话框里有一些控件,然后我想显示几个,隐藏几个,就用GetDlgItem(ID)->ShowWindow(false)函数但是不知道怎么了整个对话框都隐藏了?下面的代码在另一个文件调用生成这个对话框
C***ListDlg dlg;
if (dlg.DoModal()==IDCANCEL)
{
return 0;
}
GetDlgItem(ID_STATIC)->ShowWindow(dlg,false);//不让静态文本控件显示
GetDlgItem(ID_EDIT)->ShowWindow(dlg,false);//不让Edit控件显示上面的代码有错码?
C***ListDlg dlg;
if (dlg.DoModal()==IDCANCEL)
{
return 0;
}
GetDlgItem(ID_STATIC)->ShowWindow(dlg,false);//不让静态文本控件显示
GetDlgItem(ID_EDIT)->ShowWindow(dlg,false);//不让Edit控件显示上面的代码有错码?
解决方案 »
- 关于VC连接数据库的问题,求高手指教
- vc sql 用ADO连接出现列名无效
- 散发..- -..将VC8.0的编译器放到 VC6.0上了...
- 要hook指定进程 如何监视该进程启动?
- 求救!!!select错误10038
- CListCtrl不能正确显示列宽!
- 如何删除所画的直线
- 50分求动态创建RichEdit时候,怎么让richedit根据需要自动添加滚动条?VSCROLL?高回报哦!
- 用SDK怎么控制网络上的打印机,用EnumPrinter能做么?系统win2000server.
- 请教一下winhelp里出现的问题(500分)
- dll连接数据库 急急急!!!
- 推荐几本windows平台下的网络编程的书?
解决方法:在数字后面加个非数字的标识符号*什么的
检测edit控件输入是否最后一位是*
是显示前面数字行数,不是,不发送消息不进行刷新
第二个问题:
你确定能编译过?
查MSDN showwindow的参数凭记忆也没有false啊,是SW_SHOWNORMAL SW_HIDE(可能前面两个字母不对,记不清了)自己查查,还有GetDlgItem(ID_EDIT)返回的就是cwnd*吧?怎么还有dlg?
2.你的对话框DoModal后 下面的代码执行不到了
况且GetDlgItem(ID_STATIC)->ShowWindow(dlg,false); 没有这样用的
第一个问题你理解错了 我想说明是个EN_CHANG这个消息是只要Edit框一边,你只要在这消息所对应的的函数进行你想要操作就行,而我做的就是刷新List列表框而已,从1000变到10需要2步,则这消息所对应的函数就执行了2遍,而我想要的是一步到位,就是我去掉2个0,他只刷新一次就显示10条数据第二个是伪代码,我只是写下我大概怎么写的思路而已。
不知道为什么他把整个对话框都隐藏了?有什么情况才会出现这样的问题啊
上面代码主要想表示的是我是在对话框已经创建后才去隐藏拿两个控件而已。还有第一问题好想用什么让Edit框失去“【焦点】或是【交点】”办法能实现我想要的效果,好像是我在改变Edit框的数值时,让Edit框暂时失去“【焦点】”,等我修改完后在让他获得“【焦点】”在执行相应的函数
2.应该是GetDlgItem(IDC_EDIT1)->ShowWindow(SW_HIDE);
或GetDlgItem(IDC_EDIT)->ShowWindow(SW_SHOW);PS:貌似文本框最好改掉ID,不要用原来的IDC_STATIC,就是改成IDC_STATIC1也行
第一个问题我不知道怎么处理
第二个问题,你在DoModal之后,对DoModal的这个对话框内的操作都不起作用了。
GetDlgItem(ID_STATIC)->ShowWindow(dlg,false);//不让静态文本控件显示
GetDlgItem(ID_EDIT)->ShowWindow(dlg,false);//不让Edit控件显示