定义了Address1的值为ox11:#define Address1 0x11
已经得到了字符串Address1并存到了CString str中,如何将Address1对应的值0x11输出到编辑框?
用SetWindowText(str)//输出为Address1,而我要的是输出为0x11.请求指点!我实在搞的头痛了。谢谢!

解决方案 »

  1.   

    CString str1;
    str1.Format("0x%x",0x11);
      

  2.   

    宏只在编译时起作用,str里面保存的"Address1",不会转换为你想要的0x11
      

  3.   

    #define Address1 0x11
    CString str="Address1";
    CString str2;
    str2.format("%x",Address1)
    SetWindowText(str2)
      

  4.   

    CString str = _T("");
    str.Format("%x", Address);
    editBox.SetWindowsText(str1);
      

  5.   

    首先谢谢大家的及时回复!可能是我没有说清楚,上面各位说的解决方法都对,我的问题在于我不能在str.format("%x",Address1)中直接写Address1,我的情况是这样的:
       我在一个ComboBox中设有很多选项,比如Address1,Address2,..Address10,这里显示字符而不直接显示它的数值是为了看起来明了,我需要在用户选中一个选项后在另一个编辑框中再显示出它的数值.得到选项这一步是完成了,但是我得到的选项(如Address1)会直接存在CString str中
    (用GetLBText(nIndex,str)),这个时候就存在如何将这个str的内容显示成我定义的数值.等待大家的指点!谢谢!
      

  6.   

    简单的办法用数组,vector,list等容器按照顺序存放数值data[];从ComboBox得到的nIndex,访问data[nIndex];
    推荐的办法;ComboBox提供了不止string文本的存放,也提供了SetItemData,GetItemData和
    SetItemDataPtr和GetItemDataPtr,把Address名和对应的值定义成结构体,用SetItemDataPtr存放他们的指针...
      

  7.   

    ComboBox  自己设置对应值 
    显示字符串,点击获取SEL,根据SEL设置相应值即可~
      

  8.   

    谢谢所有回帖朋友的热心帮助!尤其是seu07201213(汪洋中的一片叶子),您推荐的方法很详细,也解决了我的问题,特此感谢!