none
проблема при создании диалогов для закладок TabCtrl RRS feed

  • Вопрос

  • Есть TabCtrl, пытаюсь установить на закладки диалоговые панели, как раньше делал:

    tabItem.lParam = (LPARAM)PageShM; 
     m_TabGlobal.SetItem(1, &tabItem);
     if(PageShM->Create(IDD_SHORTMSG/*CShortMsg::IDD*/, m_TabGlobal) != NULL)
     {
     PageShM->SetWindowPos(NULL, 3, 2, 0, 0, SWP_NOZORDER | SWP_NOSIZE);
     PageShM->ShowWindow(SW_HIDE);
     }

    получаю такую ошибку:

    "error C2664: 'BOOL CDialog::Create(LPCTSTR,CWnd *)' : cannot convert parameter 1 from 'int' to 'LPCTSTR'".

    При этом, если навожу курсор на Create, всплывающая подсказка показывает два варианта вызова ф-ции:

    virtual BOOL Create(LPCTSTR lpszTemplateName, CWnd* pParentWnd = NULL );
     virtual BOOL Create( UINT nIDTemplate, CWnd* pParentWnd = NULL );

      так как и описано в MSDN.

    Тут же открываю другой проект (созданный еще в VC++ 6.0 и перенесенный в эту-же VS 2008), там этот же код прекрасно компилируется.

    Что опять не так ?


    10 августа 2011 г. 20:39

Ответы

Все ответы

  • Может попробовать явно привести параметр к типу UINT?

    if(PageShM->Create((UINT)IDD_SHORTMSG, m_TabGlobal)!= NULL)
    

     


    Для связи [mail]
    • Помечено в качестве ответа Abolmasov Dmitry 12 августа 2011 г. 10:20
    11 августа 2011 г. 7:34
  • "Может попробовать явно привести параметр к типу UINT?"

    Вопрос не в том как типы приводить друг к другу, а почему среда не видит второго варианта вызова ф-ции, при том что в другом проекте все прекрасно компилируется ?

    14 августа 2011 г. 8:58