题主在写一个有很多控件的MFC程序时,自己写了控件的类,想把控件与类的数组关联起来,但是循环内第一个控件的关联类型是类的数组了。
这里是我定义的类:
show_static m_tabelpic[36];
这里是循环关联的部分:
for (int i = 0; i < 36; i++)
{
DDX_Control(pDX, IDC_STATIC_00 + i, m_tabelpic[i]);
}
一开始运行之后弹出窗口“不支持尝试支持的操作”,之后我看到第一个控件的关联变量发现了其关联的类型不对,为下图:
于是问一下大家,有见过这个问题的嘛?这个问题该怎么解决。
把你的DDX_Control先去掉,直接在OnInitDialog()函数中添加以下语句,实现你的目的,有帮助请采纳谢谢!
for (int i = 0; i < 36; i++)
{
HWND hWndCtrl;
GetDlgItem( IDC_STATIC_00 + i, &hWndCtrl);
m_tabelpic[i].SubclassWindow(hWndCtrl);
}
m_tabelpic[i]有调用Create初始化么?是不是没有加载。
单独一个控件绑定一个变量,然后把所有的变量指针,放到一个数组里面进行管理。
二、手动添加变量方法:
还是以Slider控件为例,
1. 首先在头文件DlgTest.h中添加
CSliderCtrl m_slider;
2. 然后然后在对应的DlgTest.cpp文件中找到CDlgTest::DoDataExchange函数,添加代码:
DDX_Control(pDX, IDC_Slider_test, m_slider);
如果是关联数字(value)变量,以Slider控件为例,首先在DlgTest.h中添加
int m_Slider_value;
然后在对应DlgTest.cpp文件中找到CDlgTest::DoDataExchange函数,添加代码:
DDX_Text(pDX, IDC_Slider_test, m_Slider_value); //IDC_Edit1为控件的ID号
即可。
你在绑定变量的时候,位置没有放在正确的位置呢?