Как получить хэндл комбобокса в окне ордера? - страница 4

leonerd #:

а как вы фокус устанавливали на Edit control?

Думал SetFocus() сработает, а он похоже только для окон.

 Попробуйте это

hBUTT=GetDlgItem(hWnd,ID_cntrl);
    SendMessageA (hBUTT,  WM_ACTIVATE ,       1,  0 ) ; // Активизируем
    SendMessageA (hBUTT,  WM_ENABLE   ,       1,  0 ) ;
    SendMessageA (hBUTT,  WM_SETFOCUS ,       0,  0 ) ;
Mikhail Dovbakh #:

ага

Еще бы понять, как распарсить дробное значение, чтоб сопоставить каждому разряду, а также точке, свой код...

Mikhail Dovbakh #:

 Попробуйте это

Попробую. Спасибо. Но, вроде как, и так сработало у меня:

SendMessageW(hdlg,WM_NEXTDLGCTL,hwndControl,1);
leonerd #:

Еще бы понять, как распарсить дробное значение, чтоб сопоставить каждому разряду, а также точке, свой код...

Перевести double в string что ли сначала?

leonerd #:

Еще бы понять, как распарсить дробное значение, чтоб сопоставить каждому разряду, а также точке, свой код...

for (i= 0;i<l;i++)
    {
    if (StringGetChar(NumberText,i)==46)  k =  VK_DECIMAL;
      else  k =0x30+StringGetChar(NumberText,i);
    PostMessageA(hBUTT,  WM_KEYDOWN, k, NULLs);
    PostMessageA(hBUTT,  WM_KEYUP, 0, NULLs); 
    }
Mikhail Dovbakh #:

Спасибо. А с символом что делали? Тоже впечатывали по буквам?

Mikhail Dovbakh #:

Ещё есть VkKeyScanExW()  для этого.

Оказалась нетривиальная задача выбрать символ в окне ордера. Я его и впечатывал по буквам и отправлял через SendMessageW с WM_SETTEXT. Не применяется и всё..

Т.е. выбирать-то мне из списка как раз бы его не хотелось, подозреваю это еще сложнее. Ввести в поле получается, но не применяется значение.

leonerd #:

Оказалась нетривиальная задача выбрать символ в окне ордера. Я его и впечатывал по буквам и отправлял через SendMessageW с WM_SETTEXT. Не применяется и всё..

Т.е. выбирать-то мне из списка как раз бы его не хотелось, подозреваю это еще сложнее. Ввести в поле получается, но не применяется значение.

а нет, мой косяк, не обновлял хэндл edit поля.