хочу сделать 2 эдита в один вводить текст, а в другой он будет дублироваться, при этом первый очищается. С этим у меня все понятно , но как сделать консоль, как в command.com, только окно не консольное а эдит чтоб прокрутка текста была. Гуглить пробовал, но там решения только для ЯВУ дает. А хочется на асме
AddTextToEdit proc lpTextWORD option PROLOGUE:NONE option EPILOGUE:NONE invoke SendDlgItemMessage, g_hDlg, 1001, WM_GETTEXTLENGTH, 0, 0 invoke SendDlgItemMessage, g_hDlg, 1001, EM_SETSEL, eax, eax invoke SendDlgItemMessage, g_hDlg, 1001, EM_REPLACESEL, FALSE, [esp+4] ret (sizeof DWORD) option PROLOGUE:PROLOGUEDEF option EPILOGUE:EPILOGUEDEF AddTextToEdit endp
бага если текст в едите выделен то он очищется , т.е. идет банально вставка текста Как сделать так чтоб предварительно выделенный текст перестал быть выделенным
God_Father Посмотри описание сообщения EM_SETSEL. P.S. Задай wParam и lParam в размер текста в edit'е.
сейчас выложу сгенерированный исходник. Как сделать так, если часть текста выделена, чтобы она перестал быть выделенной? Причина баги в том, что если текст выделить, то вставка текста в конец едита идет неправильно
God_Father Код (Text): AddTextToEdit proc lpText:DWORD option PROLOGUE:NONE option EPILOGUE:NONE ;; invoke SendDlgItemMessage, hwndMemo1, Memo1ID, WM_GETTEXTLENGTH, 0, 0 ;; invoke SendDlgItemMessage, hwndMemo1, Memo1ID, EM_SETSEL, 0, eax ;; ;int 3 ;; invoke SendMessage,hwndMemo1,EM_REPLACESEL, FALSE, [esp+4] invoke SendMessage, hwndMemo1, WM_GETTEXTLENGTH, 0, 0 invoke SendMessage, hwndMemo1, EM_SETSEL, eax, eax invoke SendMessage, hwndMemo1, EM_REPLACESEL, FALSE, [esp+4] ret (sizeof DWORD) option PROLOGUE:PROLOGUEDEF option EPILOGUE:EPILOGUEDEF AddTextToEdit endp