能否具体示范如何使用宏MAKEINTRESOURCE,我有一个控件的ID值但它是CString 的如"IDC_EDIT1"我要用GetDlgItem(IDC_EDIT1)->SetWindowText("kk")的方式给它设值,怎么办?

解决方案 »

  1.   

    case WM_NOTIFY: 
        switch (((LPNMHDR) lParam)->code) 

            case TTN_GETDISPINFO: 
                { 
                LPTOOLTIPTEXT lpttt; 
     
                lpttt = (LPTOOLTIPTEXT) lParam; 
                lpttt->hinst = g_hinst; 
     
                // Specify the resource identifier of the descriptive 
                // text for the given button. 
                idButton = lpttt->hdr.idFrom; 
                switch (idButton) 

                    case IDM_CUT: 
                        lpttt->lpszText = MAKEINTRESOURCE(IDS_TIPS_CUT); 
                        break; 
                    case IDM_COPY: 
                        lpttt->lpszText = MAKEINTRESOURCE(IDS_TIPS_COPY); 
                        break; 
                    case IDM_PASTE: 
                        lpttt->lpszText = MAKEINTRESOURCE(IDS_TIPS_PASTE); 
                        break; 
                } 
                break; 
                } 
            . 
            . // Process other notifications here. 
            . 
            default: 
                break; 
        } 
      

  2.   

    CListBox *pList
    pList=(CListBox *)this->dlgbar1.GetDlgItem(IDC_LIST_LINE);用不着MAKEINTRESOURCE ,得到指针后记住 强制转换类型
    (CListBox *)
      

  3.   

    CEdit* pEdit=(CEdit*)GetDlgItem(IDC_EDIT1);
    pEdit->SetWindowText("kk");
    为什么要用MAKEINTRESOURCE?
      

  4.   

    问题的关键在于我得到的ID值如"IDC_EDIT1"是一个CString的值比如有一个变量strValue="IDC_EDIT1"我只有手工写对应的转换如:
    int CJcSqd::GetIntByName(CString strName)
    {
    if(strName=="IDC_EDIT1")
    return 1001;
    else if...
            
             else 
                return 0;
    }
    然后用GetDlgItem(GetIntByName(strValue))-SetWindowText("kk");来进行赋值。能否不用自己写GetIntByName函数?
      

  5.   

    为什么得到的 ID 是 字符串 呢??
    返回的int值是在编译时制定的,除非你是动态创建的,但动态创建有句柄呀!把你遇到问题的情况说清楚点>>共同研究研究!
    :)
      

  6.   

    我做的一个程序里面有一个申请单的录入,申请单有多个模板即内容不同,但是对应的是数据库中的同一张表
    我的做法是以XML的格式把所有的内容存成一个字段(包括控件的名称),这样不同的窗体(申请单模板)从同一表中读出的数据根据控件名和值回填,所以这时得到的ID值是一个CString型的,我就想知道在VC中有没有不用自己来写GetIntByName(CString strName)这一函数的方法。(由于我的表别的VB程序也要用,所以这里不能在表中存入ID的int值)。请赐教!
      

  7.   

    不如做个结构体数组
    struct{
    CString strid;
    int     ID;
    }
    从数组中找到你要ID ,不也一样么