知到一个Edit控件ID,设置它的文字为什么不出来呢。

lvcjh 2003-05-16 09:29:07
在一个类中用下面语句创建的对象
CEdit m_Fifth;
#define FIFTH(i) 2000+i*100+5

m_Fifth.Create(WS_EX_CLIENTEDGE|ES_AUTOHSCROLL|ES_LEFT|ES_NOHIDESEL|WS_CHILD|WS_VISIBLE,rect,AfxGetApp()->m_pMainWnd,FIFTH(i));
//本来要在视图上创建,现在在主窗口上建了。


现在需要设置其文字内容
HWND hWnd=GetDlgItem((HWND)(AfxGetApp()->m_pMainWnd->GetSafeHwnd()),2000+nIndex*100+5);
SetDlgItemText(hWnd,2000+nIndex*100+5,strTmp);

为什么hWnd为空呢,怎么才可以设置呢。
...全文
78 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lygfqy 2003-05-21
  • 打赏
  • 举报
回复
SetDlgItemText(.....)指向的未必就是客户区吧
lvcjh 2003-05-21
  • 打赏
  • 举报
回复
现已搞写,就是用::GetDlgItem(.....),然后用::SetWindowText(...);
但为什么SetDlgItemText(.....)不行呢。
菜牛 2003-05-17
  • 打赏
  • 举报
回复
在哪一个类里面创建的?在哪一个类里面调用的?
blackeye527 2003-05-17
  • 打赏
  • 举报
回复
UpdateData(TRUE);
lvcjh 2003-05-16
  • 打赏
  • 举报
回复
//禁示修改客户ID
GetDlgItem(IDC_CUSTOMERID)->EnableWindow(false);

完全等价于
HWND Hwnd=::GetDlgItem(this->GetSafeHwnd(),IDC_CUSTOMERID);
::EnableWindow(Hwnd,false);


HWND hWnd=::GetDlgItem((HWND)(AfxGetApp()->m_pMainWnd->GetSafeHwnd()),2105);
::SetDlgItemText(hWnd,2105,strTmp);
还是不行,这是什么原因。
lvcjh 2003-05-16
  • 打赏
  • 举报
回复
这是一个动态创建的控件并且所创建的控件不在当前对话框中,
如果有了CEdit句柄及控件ID,就可以得到与设置值的,但不知出了什么错。
Tue 2003-05-16
  • 打赏
  • 举报
回复
void SetDlgItemText( int nID, LPCTSTR lpszString );
怎么是Hwnd呢,nID是资源里的ID。
不知道
SetDlgItemText(hWnd,2000+nIndex*100+5,strTmp);
原型是什么呢?:)
lvcjh 2003-05-16
  • 打赏
  • 举报
回复
跟踪到hWnd时为空,怎么才行。

15,979

社区成员

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

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