在界面有放了许多,同类的控件,想通过定义数组形式
更好高效使用它们,如何实现?
更好高效使用它们,如何实现?
解决方案 »
- vc 串口通信!求助
- 求《COM编程精彩实例》光盘源码!
- 程序打包中的问题!紧急求救
- 怎么用socket套接字编程直接连上www.sina.com.cn网站???
- CRecordSet类能不能灵活使用?
- 高手帮忙!!error LNK2001: unresolved external symbol "public: void __thiscall
- 本人特别急啊---需要Dialogic(ProLine/2v)语音卡的使用说明和驱动.
- 如何查找已创建但还未显示的窗口
- 关于VC++的编译小问题
- 在基于对话框程序中,什么地方处理数据比较好?我在app类中总是会有异常。为什么?
- 关于RSA算法
- 救命啊,一个基础问题
btnHwnd[0]=GetDlgItem(GetSafeHwnd(),IDC_BUTTON1);
.....
.....
.....
btnHwnd[9]=GetDlgItem(GetSafeHwnd(),IDC_BUTTON10);
error C2664: 'void __thiscall CWnd::GetDlgItem(int,struct HWND__ ** ) const' : cannot convert parameter 1 from 'struct HWND__ *' to 'int'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast错误请指教?
兄台照您方法是可以声明了,这样用就
((CButton*)GetDlgItem(btnHwnd[0]))->EnableWindow(false);
出提示:
error C2664: 'class CWnd *__thiscall CWnd::GetDlgItem(int) const' : cannot convert parameter 1 from 'struct HWND__ *' to 'int'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast还是使用就不通?还敬请指点!!谢谢
CButton m_button[10];
写一个函数:
CreateButton()
{
for(int i=0;i<10;i++)
{
m_button[i].Create(..........);
}
}
::EnableWindow(btnHwnd[0], FALSE);
CtrlIDs[0] = IDC_BUTTON1;
//其他ID
CtrlIDs[9] = IDC_BUTTON9;//访问之
for(int n=0; n<10; n++){
GetDlgItem(btnHwnd[n])->EnableWindow(FALSE);
}
CtrlIDs.Add(IDC_BUTTON1);
//其他ID
CtrlIDs.Add(IDC_BUTTON9);;//访问之
for(int n=0; n<10; n++){
GetDlgItem(CtrlIDs[n])->EnableWindow(FALSE);
}
GetDlgItem(CtrlIDs[n])->EnableWindow(FALSE); 只能控制基本属性之类。
但是能否:
窗口中有IDC_EDIT1,IDC_EDIT2,IDC_EDIT3个控件我想创建对应的数组来操作它们,可是
CEdit eidt[3];
int style=WS_CHILD|WS_CLIPSIBLINGS|WS_EX_TOOLWINDOW|WS_BORDER;
edit[0].Create(style,CRect(0,0,0,0),this,IDC_EDIT1);
edit[1].Create(style,CRect(0,0,0,0),this,IDC_EDIT2);
edit[2].Create(style,CRect(0,0,0,0),this,IDC_EDIT3);
edit[0].SetLimitText(4);
edit[1].GetWindowText(str);
edit[2].SetWindowText("ok");
我想这样创建数组,但是窗口中的控件IDC_EDIT1,IDC_EDIT2,IDC_EDIT3毫无反映??这是为何?
像这种情况如何创建与窗口ID对应的可使用其各属性的数组。敬请大虾执教,谢谢..
edits[0]=(CEdit*)GetDlgItem(IDC_EDIT1);
//...
edits[2]=(CEdit*)GetDlgItem(IDC_EDIT2);CString strTxt;
for(int n=0; n<3; n++){
strTxt.Format(_T("edit%d"), n);
edit[n]->SetWindowText(strTxt);
}