CString str1;
if(g_CtrlCard.Init_Board() <= 0) {
MessageBox("初始化卡失败", "提示", MB_ICONSTOP);
return;
}
ifInit = true;
g_CardVer = get_hardware_ver(0);
str1.Format("Hardware Version: V%d", g_CardVer);
MessageBox("初始化成功\n" + str1, "tips", MB_OK); UINT
 nID1[] = {IDC_X_SPD, IDC_Y_SPD, IDC_Z_SPD};
UINT
 nID2[] = {IDC_X_POS, IDC_Y_POS, IDC_Z_POS}; CEdit*pEdit;
for(int an = 1; an < 4; an++) {
pEdit = (CEdit*)GetDlgItem(nID1[an]);
pEdit->SetWindowText("200");
pEdit = (CEdit*)GetDlgItem(nID2[an]);
pEdit->SetWindowText("0");
代码如上所示.
我注掉有GetDlgItem的部分执行是没问题的
应该怎么用GetDlgItem来取得内容?
我建立的项目是CFORMVIEW的,是不是在这种项目里不是用GetDlgItem获取EditBox里面的内容的?

解决方案 »

  1.   

    获取控件的指针后,用getwindowtext来获取内容,然后转换即可
      

  2.   

    不用GetDlgItem的话,就将Edit的指针保存下来。没指针没有办法对Edit进行操作。CFromView也是一样的。
      

  3.   

    同意一楼说法,不用指针未必不可以,把编辑框对象作为成员直接调用getwindowtext即可。
      

  4.   

    求一个关于GetDlgItem的实例,哪位有相关的贴上来,谢谢!
      

  5.   

    不知道是不是我看错了,你的数组的索引值从0-2,你的循环是小于4,当an=3时,数组越界。
    UINT nID1[] = {IDC_X_SPD, IDC_Y_SPD, IDC_Z_SPD}; 
    UINT nID2[] = {IDC_X_POS, IDC_Y_POS, IDC_Z_POS}; CEdit*pEdit; 
    for(int an = 1; an < 4; an++) { 
    pEdit = (CEdit*)GetDlgItem(nID1[an]);