· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› ListBox Editing

Посл.отвђт Сообщенiе


Дата: Июн 17, 2004 03:36:08

Можно ли изменить текст в строке в ListBox не удаляя её?
ListBox не Owner Drawn.
Также интересно - можно ли изменять порядок в ListBox произвольно (например подвинуть какую-нить строчку на позицию вверх или вниз, речь идёт не о сортировке).
Опять же не удаляя.

Просьба если есть кому что сказать - не отвечать про "другие" контролы, и про Owner Drawn. Про это и так понятно.
Вроде как по справке нельзя, но вдруг какой гуру что-то знает секретное :)


Дата: Июн 17, 2004 07:16:03 · Поправил: Quantum

The Svin
Можно ли изменить текст в строке в ListBox не удаляя её?
#define LB_SETTEXT 0xXXXX
Sets text of the specified item. 

 LB_SETTEXT
 int index;
 const char *string;

 wParam = (WPARAM)index;
 lParam = (LPARAM)string;


Parameters: 
index  The index of the specified item.  
string  The string of the item to be set.


Дата: Июн 17, 2004 07:23:16

Quantum
minigui?


Дата: Июн 17, 2004 07:42:08

Ммда... Вспомнил что есть такое недокументированное сообщение и кликнул по первой ссылке в гугле :-) Под Win это сообщение вполне может иметь другой define. С другой стороны, оно может быть уже не поддерживается на XP и т.д. (я проверял на 95, 98, ME и 2000). Давно это было... Исходник не сохранился :-(


Дата: Июн 17, 2004 08:00:56

тот который 0xF1AA не фурычит под XP.
еще по линку сходил - так там вообще написано:

#define LB_SETTEXT 0xF1AA


Sets text of the specified item.


LB_SETTEXT
int index;
const char *string;

wParam = (WPARAM)index;
lParam = (LPARAM)string;
Parameters:
index The index of the specified item.
string The string of the item to be set.
Returns:
One of the following values:
LB_OKAY
Success
LB_ERR
Invalid item index or memory allocation error.

Definition at line 2234 of file control.h.

у дефайны для листбокса например в WinUser.h


Дата: Июн 17, 2004 17:09:09

Под NT 4.0 F1AA тоже не фурычит.
Видимо прийдётся делать с LB_INSERTSTRING и удалением старой строки.


Дата: Июн 17, 2004 20:22:50

В энтях очевидно не пашет из-за того, что они с юникодом работают. На этом много шишек себе можно набить.

Windows NT/2000/XP: For an ANSI application, the system converts the text in a list box to Unicode using CP_ACP.


Дата: Июн 18, 2004 21:15:41

Т.е. если я пошлю указатель на Unicode строку она отреагирует что ли?


Дата: Июн 18, 2004 21:35:32 · Поправил: Toxic

А фиг его знает...
Для common controls номера эквивалентных сообщений в ASCII и Unicode формате имеют разные номера. Например, для ListView номер unicode-сообщения на 70 больше его ascii-аналога. Для TreeView - на 50. Может, они и с listBox такое сделали...


Дата: Июн 18, 2004 23:16:45

1.Это не common control.
2.Для LB_ нет разных номеров. По крайней мере в h.
3.Проверил с F1AA не реагирует ни на какую строку.


Дата: Июн 18, 2004 23:48:00

1. А я и не говорил, что он common
2. Ну раз LB_SETTEXT недокументирована, вот я и отметил, что такое допущение (про номера) имеет право на существование. Хотя утверждать не берусь.


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.063