速问速决!

lexiang42 2009-08-26 02:21:12
对话框中有slider控件,头文件中声明一对象CSpliderCtrl m_slider,源文件OnInitDialog()中用该对象调用CSliderCtrl中的SetRange,SetTicFreq等方法时出现"Debug Assertion Failed"错误,原因均是m_slider的m_Wnd为空。

将头文件中的对象换成对象指针CSliderCtrl* m_pslider,在调用方法前加上一行m_pslider = (CSliderCtrl*)GetDlgItem(IDC_SLIDER),再m_pslider->...,没问题。

对于对话框中的其他控件,如单,多选按钮,组合框,不都是定义一个对象然后直接调方法吗?到时这些对象的m_hWnd都不为空。为什么CSliderCtrl确不行??

第一次使用slider,请各位赐教。
...全文
75 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lexiang42 2009-08-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 tttyd 的回复:]
在你的对话框的
void CXXDlg::DoDataExchange(CDataExchange* pDX)函数中添加一下代码就可以了

DDX_Control(pDX, IDC_SLIDER, m_slider);
[/Quote]
我晕 竟是忘了添DDX方程-_-! 低级错误
tttyd兄一语中的,谢谢!
lexiang42 2009-08-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 tttyd 的回复:]
在你的对话框的
void CXXDlg::DoDataExchange(CDataExchange* pDX)函数中添加一下代码就可以了

DDX_Control(pDX, IDC_SLIDER, m_slider);
[/Quote]
我晕 竟是忘了添DDX方程-_-! 低级错误
tttyd兄一语中的,谢谢!
雪影 2009-08-26
  • 打赏
  • 举报
回复
在你的对话框的
void CXXDlg::DoDataExchange(CDataExchange* pDX)函数中添加一下代码就可以了

DDX_Control(pDX, IDC_SLIDER, m_slider);
wu_qing_yun 2009-08-26
  • 打赏
  • 举报
回复
动态创建的话,必须Create
lexiang42 2009-08-26
  • 打赏
  • 举报
回复
我用的是05,以前我往对话框里添控件从没Create过,调试时相关控件对象的m_hWnd一点儿问题都没有啊。
lexiang42 2009-08-26
  • 打赏
  • 举报
回复
速问速决,自己先顶下。
youyifang 2009-08-26
  • 打赏
  • 举报
回复
还有一种方法是,你用vc的控件编辑框拉一个控件到你的对话框上,然后ctrl+w在变量中将其与控件类绑定,
这种不用创建,可以直接实现.
youyifang 2009-08-26
  • 打赏
  • 举报
回复
没有创建,窗口对象的调用都需要创建的
用create函数创建一下.

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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