none
why I cannot add a variable of a control type on rc editor of visual C++ RRS feed

  • 問題

  • I am using visual studio and using it to develope VC++ program, I am editing my dialog box on RC editor, and I added a listbox from tools box, then I try to add a variable of "control" type, I add a name m_list, and press OK, nothing happens. I try to search m_list in all project, but nothing is found. I try to add a "value" type variable of the listbox, and it is found in source file. I want to know how can I add the variable of a "control" type to source. anyone can help me? thanks so much.

    2011年6月11日 上午 10:01

解答

  • 1. Open the project RC file on the text mode. search  add list  Dialog.

    /////////////////////////////////////////////.RC file/////////////////////////////////////////////////////////////////////////

    IDD_DS5320SETDHCPDLG DIALOGEX 0, 0, 287, 141
    STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
    CAPTION "DHCP Service Setup"
    FONT 8, "MS Shell Dlg", 400, 0, 0x1
    BEGIN
        DEFPUSHBUTTON   "Ok",IDOK,211,118,50,14
        PUSHBUTTON      "Cancel",IDCANCEL,211,97,50,14

      CONTROL         "",IDC_LIST1,"SysListView32",LVS_REPORT | LVS_ALIGNLEFT | WS_BORDER | WS_TABSTOP,7,7,168,173//{Add you List table}
     END

    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    2. open  the Class .H  file add object name  m_list .

    //////////////////////////////////////.H file/////add  Dialog Class m_list Object/////////////////////////

     

    CListCtrl m_list ;

    ///////////////////////////////////////////////////////////////////

    3.open the class .cpp file set  IDC_LIST1 use  m_list  object

    /////////////////////////////.cpp file //////////////set  IDC_LIST1 use  m_list  object////////////////////////////////////////////

     

    void CCS100ConWiteListEx::DoDataExchange(CDataExchange* pDX)
    {
     CDialog::DoDataExchange(pDX);
     DDX_Control(pDX,IDC_LIST1,m_list);
     
    }

    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    4. add m_list Column object

    /////////////////////////////.cpp file //////////////add column object//////////add a Cloumn//////////////////////////////////

    LV_COLUMN lvc;
    lvc.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;

     lvc.iSubItem = 0;
     lvc.pszText =L"ID";
     lvc.cx=50;
     lvc.fmt =LVCFMT_LEFT;
     m_list.InsertColumn(i,&lvc);

    /////////////////////////////////////////////////////

    5. add m_list ITEM

    /////////////////////////////.cpp file //////////////add Item object//////////add a item//////////////////////////////////

    CString TEMPString;

    TEMPString.Format("TEST ID");

    LV_ITEM lvi;
     memset(&lvi,0,sizeof(LV_ITEM));
     lvi.mask = LVIF_TEXT ;
     lvi.iItem=m_list.GetItemCount(); //add to last item

     lvi.iSubItem = 0;
     lvi.pszText=TEMPString.GetBuffer();
     lvi.cchTextMax=TEMPString.GetLength();
     lvi.stateMask = LVIS_STATEIMAGEMASK;
     lvi.state = INDEXTOSTATEIMAGEMASK(1);
      m_list.InsertItem(&lvi); 
     

     

    /////////////////////////////////////////////add OK //////////////////////////////////////////////////////////////////////

     

     

     

    • 已標示為解答 timmychan 2011年6月15日 上午 02:12
    2011年6月13日 上午 02:25

所有回覆

  • if you add control variable with control type but failed, you can close VC++ and re-open it, then do the same thing, it will work!
    2011年6月12日 上午 03:58
  • I tried for many times, but it doesn't work. is there any setting about this feature?


    tim
    2011年6月12日 上午 05:07
  • one thing to amend is, My project was originally written in visual C++ 6.0,  and it has been translated by the VC++ 2010,

    I tried to open a new  project to do the same thing, and found it works ! But I still want to use the old project, How can I do to make add control value work? thousands of  thanks.


    tim
    2011年6月12日 上午 05:19
  • 1. Open the project RC file on the text mode. search  add list  Dialog.

    /////////////////////////////////////////////.RC file/////////////////////////////////////////////////////////////////////////

    IDD_DS5320SETDHCPDLG DIALOGEX 0, 0, 287, 141
    STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
    CAPTION "DHCP Service Setup"
    FONT 8, "MS Shell Dlg", 400, 0, 0x1
    BEGIN
        DEFPUSHBUTTON   "Ok",IDOK,211,118,50,14
        PUSHBUTTON      "Cancel",IDCANCEL,211,97,50,14

      CONTROL         "",IDC_LIST1,"SysListView32",LVS_REPORT | LVS_ALIGNLEFT | WS_BORDER | WS_TABSTOP,7,7,168,173//{Add you List table}
     END

    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    2. open  the Class .H  file add object name  m_list .

    //////////////////////////////////////.H file/////add  Dialog Class m_list Object/////////////////////////

     

    CListCtrl m_list ;

    ///////////////////////////////////////////////////////////////////

    3.open the class .cpp file set  IDC_LIST1 use  m_list  object

    /////////////////////////////.cpp file //////////////set  IDC_LIST1 use  m_list  object////////////////////////////////////////////

     

    void CCS100ConWiteListEx::DoDataExchange(CDataExchange* pDX)
    {
     CDialog::DoDataExchange(pDX);
     DDX_Control(pDX,IDC_LIST1,m_list);
     
    }

    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    4. add m_list Column object

    /////////////////////////////.cpp file //////////////add column object//////////add a Cloumn//////////////////////////////////

    LV_COLUMN lvc;
    lvc.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;

     lvc.iSubItem = 0;
     lvc.pszText =L"ID";
     lvc.cx=50;
     lvc.fmt =LVCFMT_LEFT;
     m_list.InsertColumn(i,&lvc);

    /////////////////////////////////////////////////////

    5. add m_list ITEM

    /////////////////////////////.cpp file //////////////add Item object//////////add a item//////////////////////////////////

    CString TEMPString;

    TEMPString.Format("TEST ID");

    LV_ITEM lvi;
     memset(&lvi,0,sizeof(LV_ITEM));
     lvi.mask = LVIF_TEXT ;
     lvi.iItem=m_list.GetItemCount(); //add to last item

     lvi.iSubItem = 0;
     lvi.pszText=TEMPString.GetBuffer();
     lvi.cchTextMax=TEMPString.GetLength();
     lvi.stateMask = LVIS_STATEIMAGEMASK;
     lvi.state = INDEXTOSTATEIMAGEMASK(1);
      m_list.InsertItem(&lvi); 
     

     

    /////////////////////////////////////////////add OK //////////////////////////////////////////////////////////////////////

     

     

     

    • 已標示為解答 timmychan 2011年6月15日 上午 02:12
    2011年6月13日 上午 02:25
  • Do not put your project location in [Desktop] or [My Documents] Directory, and try again.

    2011年6月13日 上午 02:40