Технический вопрос к знатокам Windows API

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Denis Sartakov
1898
Denis Sartakov  

такая вот проблема, друзья.

- внедрился в МТ5 своей DLL,

- открываю окно модификации заданной позиции

- хочу ввести в Edit поле stoploss заданное значение и известить об этом родительское

диалоговое окно

вот для справки картинка:

сейчас я заполняю поле stoploss с помощью  UDM_SETBUDDY  - двигаю "стрелки", а они заполняют это поле:

        SendMessage(h_StopLossPipsEdit_msctls_updown32, UDM_SETBUDDY, reinterpret_cast<WPARAM>(h_StopLossPips_Edit), static_cast<LPARAM>(NULL));

        for (int i = 0; i < i_New_SL; i++)
        {
                SendMessage(h_StopLossPips_Edit,WM_KEYDOWN,VK_UP, NULL);
                SendMessage(h_StopLossPips_Edit,WM_KEYUP,VK_UP, NULL);
        }

но получается медленно, хочется записать нужное значение прямо в поле  h_StopLossPips_Edit и

известить диалоговое окно родителя,

но вот никак не получается.  значение загнать туда удается, пытаюсь известить родителя, но тот не реагирует и

копка "modify...." не переходит в состояние Enable

вот как я это делаю, там много лишнего, но ничего не происходит, "modify...." не переходит в состояние Enable, хотя цена в stoploss поле правильная:

        Edit_Enable(h_StopLossPips_Edit,TRUE);
        SendMessage(h_StopLossPips_Edit, WM_SETTEXT,0,(LPARAM)(LPCTSTR)pt_Text);
        Edit_SetModify(h_StopLossPips_Edit,TRUE);
        SendMessage(GetParent(h_StopLossPips_Edit),WM_COMMAND,MAKEWPARAM(GetDlgCtrlID(h_StopLossPips_Edit),EN_CHANGE),(LPARAM)(h_StopLossPips_Edit));
        SendMessage(GetParent(h_StopLossPips_Edit),WM_COMMAND,MAKEWPARAM(GetDlgCtrlID(h_StopLossPips_Edit),EN_UPDATE),(LPARAM)(h_StopLossPips_Edit));
        SendMessage(GetParent(h_StopLossPips_Edit),WM_COMMAND,MAKEWPARAM(GetDlgCtrlID(h_StopLossPips_Edit),EN_ALIGN_RTL_EC),(LPARAM)(h_StopLossPips_Edit));
        SendMessage(GetParent(h_StopLossPips_Edit),WM_COMMAND,MAKEWPARAM(GetDlgCtrlID(h_StopLossPips_Edit),EN_ALIGN_LTR_EC),(LPARAM)(h_StopLossPips_Edit));
        SendMessage(GetParent(h_StopLossPips_Edit),WM_COMMAND,MAKEWPARAM(GetDlgCtrlID(h_StopLossPips_Edit),EN_MAXTEXT),(LPARAM)(h_StopLossPips_Edit));
        SendMessage(GetParent(h_StopLossPips_Edit),WM_COMMAND,MAKEWPARAM(GetDlgCtrlID(h_StopLossPips_Edit),EN_VSCROLL),(LPARAM)(h_StopLossPips_Edit));
        SendMessage(GetParent(h_StopLossPips_Edit),WM_COMMAND,MAKEWPARAM(GetDlgCtrlID(h_StopLossPips_Edit),EN_SETFOCUS),(LPARAM)(h_StopLossPips_Edit));
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий