|
|
|
Ввод в CListCtrl с клавиатуры
|
|||
|---|---|---|---|
|
#18+
собственно сабж. как сделать, чтобы можно было вводить данные с клавиатуры в данный контрол? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2005, 15:52 |
|
||
|
Ввод в CListCtrl с клавиатуры
|
|||
|---|---|---|---|
|
#18+
просто вводить или добавлять новые строки тоже? Перехват клавиш не подойдет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2005, 15:55 |
|
||
|
Ввод в CListCtrl с клавиатуры
|
|||
|---|---|---|---|
|
#18+
в общем, CListCtrl, в первой колонке вводить не надо, во вторую надо ввести один раз значения, те добавлять не надо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2005, 22:03 |
|
||
|
Ввод в CListCtrl с клавиатуры
|
|||
|---|---|---|---|
|
#18+
На сколько я знаю, Items в CListCtrl не равнозначны. Есть Item (одна на строку) и SubItem все остальные. Для Item можно определить что-то типа EDIT_LABELS Style и тогда можно будет менять текст в Item. Выглядеть это будет примерно так-же, как в Windows Explorer, тоесть не очень. С SubItem вообще проблема. Я честно говоря не знаю как их редактировать In-place. Из обходных вариантов можно предложить 1. Создать диалог, вызываемый OnClick и позволяющий редактировать выбранную строку. 2. Попытаться использовать Owner draw. и рисовать Edit-ы в ячейках CListCtrl-а с соответствующей обработкой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2005, 22:16 |
|
||
|
Ввод в CListCtrl с клавиатуры
|
|||
|---|---|---|---|
|
#18+
У контрола есть возможность переставлять колонки местами, Может это вас и устроит. Те вы ставите Item второй и разрешаете редактированние. Перестановка делается с помощью массива, но деталей я сейчас не помню. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2005, 22:26 |
|
||
|
Ввод в CListCtrl с клавиатуры
|
|||
|---|---|---|---|
|
#18+
спасибо, попробую разобраться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2005, 22:40 |
|
||
|
Ввод в CListCtrl с клавиатуры
|
|||
|---|---|---|---|
|
#18+
В MSDN пример есть - MFCLIST. Вот кусок текста, который поможет искать в правильном направлении. Вообщем, нужно что бы стиль у листа был LVS_EDITLABELS, а в обработчике сообщения WM_NOTIFY от вашего CListCtrl правильно отреагировать на LVN_BEGINLABELEDIT и LVN_ENDLABELEDIT. Editing Labels When you create a list view control, you can enable label editing by specifying the LVS_EDITLABELS style, which lets a user edit an item's text label in place. The user begins by clicking the label of an item that has the focus. The list view control notifies the parent window with an LVN_BEGINLABELEDIT notification. If you do not want to allow label editing on certain items, you can return a nonzero value to disallow it. To limit the amount of text the user can enter, the application gets the handle to the edit window through the LVM_GETEDITCONTROL message (or the MFC GetEditControl member function) and sends the EM_SETLIMITTEXT message to the edit control (or uses the MFC LimitText member function of the CEdit class), specifying the maximum number of characters that can be entered. Once editing is completed, the list view control sends its parent window an LVN_ENDLABELEDIT notification. The lParam parameter is the address of an LV_DISPINFO structure identifying the item and specifying the edited text. The parent window is responsible for updating the item's label. If editing is canceled, the iItem member is -1. Be alert to the possibility of getting a valid index to an item but getting a NULL pointer back for the text. This happens if the user chooses an item and immediately presses the Enter key. The following code from the MFCLIST sample shows how to support label editing in a list view control: case LVN_BEGINLABELEDIT: { CEdit *pEdit; // Get the handle to the edit control. pEdit = m_ListCtl.GetEditControl (); // Limit the amount of text that the user can enter. pEdit->LimitText (20); } break; case LVN_ENDLABELEDIT: // If label editing wasn't canceled and the // text buffer is non-NULL... if ((pLvdi->item.iItem != -1) && (pLvdi->item.pszText != NULL)) // Save the new label information. lstrcpy (pHouse->szAddress, pLvdi->item.pszText); break; That's all there is to it. The LISTVIEW and MFCLIST samples should be enough to get you started if you plan to include list view controls in your application. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2005, 08:21 |
|
||
|
Ввод в CListCtrl с клавиатуры
|
|||
|---|---|---|---|
|
#18+
Mashusyaв общем, CListCtrl, в первой колонке вводить не надо, во вторую надо ввести один раз значения, те добавлять не надо Для того, чтобы можно было вводить текст в любые ячейки таблицы, необходимо использовать не CListCtrl, а любой грид. Предыдущий пример позволит менять как раз только в первой колонке (т.н. Item, а все остальные колонки - SubItems). Я, например, использую MFC Grid Ctrl V2.24 - оччень удобный бесплатный грид. (Для VC.NET V2.25). Сырцы есть на . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2005, 19:03 |
|
||
|
Ввод в CListCtrl с клавиатуры
|
|||
|---|---|---|---|
|
#18+
Что-то не так сделал с гиперссылкой http://]www.codeproject.com/miscctrl/gridctrl.asp ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2005, 19:05 |
|
||
|
Ввод в CListCtrl с клавиатуры
|
|||
|---|---|---|---|
|
#18+
Уважаемая Mashusya! Вот здесь всё про CListCtrl с исходниками, в том числе и про редактирование. Скачивайте и вставляйте себе в проект. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2005, 07:41 |
|
||
|
Ввод в CListCtrl с клавиатуры
|
|||
|---|---|---|---|
|
#18+
спасибо всем.. попытаюсь разобраться!=) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2005, 13:06 |
|
||
|
Ввод в CListCtrl с клавиатуры
|
|||
|---|---|---|---|
|
#18+
в общем использовала сообщения LVN_BEGINLABELEDIT и LVN_ENDLABELEDIT и соответствующие им ф-ии: OnBeginlabeleditLISTvar OnEndlabeleditLISTvar тока не пойму, че в них писать=) , если мне не надо редактировать текст ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2005, 14:02 |
|
||
|
Ввод в CListCtrl с клавиатуры
|
|||
|---|---|---|---|
|
#18+
Сходите на http://www.codeguru.com там в разделе про ListView полно примеров на это дело. Правда там может быть все достаточно халтурно, но как пример-идея очень даже хорошо. Основная идея в том, чтобы обрабатывать EDITLABEL самому и EDIT перемещать в нужное место и задавать туда нужный текст. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2005, 16:12 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=33426395&tid=2032321]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
30ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
| others: | 245ms |
| total: | 384ms |

| 0 / 0 |
