Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Получение значения из EDIT BOX


Автор: Abbath1349 8.1.2011, 10:15
Подскажите как я могу получить текст из EditBox для std::string find_val и вывести его в элемент static text?


Код

INT_PTR CALLBACK Dialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{    
    size_t nPos;
    static char stroka[265];
    static wchar_t stroka2[265];
    static size_t origsize ;
    size_t convertedChars = 0;
    std::string find_val;
   
     switch (message)
    {
        case WM_COMMAND:
        switch(LOWORD(wParam))
        {
            case IDC_START :
           find_val=GetDlgItemText(hDlg,IDC_EDIT1,NULL,10);
    
           for(it=v.begin();it!=v.end();it++)
            {
                nPos=it->find(find_val);
                /*if(nPos!=string::)
                    nPos=0;*/
          /* strcpy_s(stroka,find_val.c_str());
          mbstowcs(stroka2,stroka,strlen(stroka));*/
          origsize=strlen(find_val.c_str())+1;
          mbstowcs_s(&convertedChars, stroka2, origsize, find_val.c_str(), _TRUNCATE);
          SetDlgItemText(hDlg,IDC_FIND,stroka2);
    
    //      EndDialog(hDlg,TRUE);
            }
        
            
            break;       
        }
    break;
      }
 return FALSE;
}

Автор: GremlinProg 8.1.2011, 11:24
Цитата(Abbath1349 @  8.1.2011,  12:15 Найти цитируемый пост)
как я могу получить текст из EditBox для std::string

Код

std::string Buffer;
//
hwndText = ::GetDlgItem( hDlg, IDC_EDIT1 );
Length = ::GetWindowTextLengthA( hwndText );
Buffer.resize( Length );
::GetWindowTextA( hwndText, &*Buffer.begin(), Length + 1 );

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)