информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Страшный баг в WindowsГде водятся OGRыSpanning Tree Protocol: недокументированное применение
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Ядро Linux избавляется от российских... 
 20 лет Ubuntu 
 Tailscale окончательно забанила... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[Win32] Вот MSDN рулит-то! Меня почти всегда выручал ;-)))) 25.11.03 09:51  Число просмотров: 2201
Автор: HandleX <Александр М.> Статус: The Elderman
<"чистая" ссылка>
> есть 3 вопроса по комбо-бокс контролу:
> 1) Создаю combo-box в ресурснике. Как можно отловить выбор
> нового элемента? Сообщения которые отправляются контролу
> отловить по моему нельзя т.к. создаю не через
> CreateWindow() (или можно?), может что-нибудь отсылается
> окну на котором ежит контрол?
Конечно. Было бы глупо, если бы контрол посылал сообщения сам себе ;-)
Разберись со всем сообщениями типа CBN_* и не забудь, что на самом деле они шлются через WM_COMMAND. Почитай про WM_COMMAND...
-------------
The WM_COMMAND message is sent when the user selects a command item from a menu, when a control sends a notification message to its parent window, or when an accelerator keystroke is translated.

WM_COMMAND
wNotifyCode = HIWORD(wParam); // notification code
wID = LOWORD(wParam); // item, control, or accelerator identifier
hwndCtl = (HWND) lParam; // handle of control


Parameters
wNotifyCode


Value of the high-order word of wParam. Specifies the notification code if the message is from a control. If the message is from an accelerator, this parameter is 1. If the message is from a menu, this parameter is 0.

wID

Value of the low-order word of wParam. Specifies the identifier of the menu item, control, or accelerator.

hwndCtl

Value of lParam. Identifies the control sending the message if the message is from a control. Otherwise, this parameter is NULL.

Return Values

If an application processes this message, it should return zero.
----------------
и т.д.

> 2) Можно ли сделать комбо-бокc только для чтения?
У комбо есть стили. Что ты понимаешь под «только для чтения»? Чтобы нельзя было перебить текст в комбо? Это стиль CBS_DROPDOWNLIST. Прочитай про все CBS_*, это интересно ;-)

> 3) Глупый вопрос, но как увеличить высоту выпадающего меню
> комбо-бокса в VC++.NET . В VC++6 нужно просто растянуть
> его, а в VC7 по высоте не растягивается.
Вот с .net засада, я не знаю.
<programming>
[Win32] combox-box control 25.11.03 07:43  
Автор: makeworld Статус: Member
Отредактировано 25.11.03 07:45  Количество правок: 1
<"чистая" ссылка>
есть 3 вопроса по комбо-бокс контролу:
1) Создаю combo-box в ресурснике. Как можно отловить выбор нового элемента? Сообщения которые отправляются контролу отловить по моему нельзя т.к. создаю не через CreateWindow() (или можно?), может что-нибудь отсылается окну на котором ежит контрол?
Поюзал Spy++, во время операций по выбору элементов комбо-бокса окну отправляются примерно такие сообщения (кусок лога):
WM_COMMAND wNotifyCode:CBN_DROPDOWN
WM_COMMAND wNotifyCode:CBN_SELENDOK
WM_COMMAND wNotifyCode:CBN_CLOSEUP
WM_COMMAND wNotifyCode:CBN_SELCHANGE
WM_COMMAND wNotifyCode:CBN_SELENDCANCEL
WM_COMMAND wNotifyCode:CBN_CLOSEUP

wNotifyCode это, как я понимаю, wParam? Почему-то при обработке WM_COMMAND c wParam любым из вышеперечисленных никакого эффекта нет.
2) Можно ли сделать комбо-бокc только для чтения?
3) Глупый вопрос, но как увеличить высоту выпадающего меню комбо-бокса в VC++.NET . В VC++6 нужно просто растянуть его, а в VC7 по высоте не растягивается.
[Win32] Вот MSDN рулит-то! Меня почти всегда выручал ;-)))) 25.11.03 09:51  
Автор: HandleX <Александр М.> Статус: The Elderman
<"чистая" ссылка>
> есть 3 вопроса по комбо-бокс контролу:
> 1) Создаю combo-box в ресурснике. Как можно отловить выбор
> нового элемента? Сообщения которые отправляются контролу
> отловить по моему нельзя т.к. создаю не через
> CreateWindow() (или можно?), может что-нибудь отсылается
> окну на котором ежит контрол?
Конечно. Было бы глупо, если бы контрол посылал сообщения сам себе ;-)
Разберись со всем сообщениями типа CBN_* и не забудь, что на самом деле они шлются через WM_COMMAND. Почитай про WM_COMMAND...
-------------
The WM_COMMAND message is sent when the user selects a command item from a menu, when a control sends a notification message to its parent window, or when an accelerator keystroke is translated.

WM_COMMAND
wNotifyCode = HIWORD(wParam); // notification code
wID = LOWORD(wParam); // item, control, or accelerator identifier
hwndCtl = (HWND) lParam; // handle of control


Parameters
wNotifyCode


Value of the high-order word of wParam. Specifies the notification code if the message is from a control. If the message is from an accelerator, this parameter is 1. If the message is from a menu, this parameter is 0.

wID

Value of the low-order word of wParam. Specifies the identifier of the menu item, control, or accelerator.

hwndCtl

Value of lParam. Identifies the control sending the message if the message is from a control. Otherwise, this parameter is NULL.

Return Values

If an application processes this message, it should return zero.
----------------
и т.д.

> 2) Можно ли сделать комбо-бокc только для чтения?
У комбо есть стили. Что ты понимаешь под «только для чтения»? Чтобы нельзя было перебить текст в комбо? Это стиль CBS_DROPDOWNLIST. Прочитай про все CBS_*, это интересно ;-)

> 3) Глупый вопрос, но как увеличить высоту выпадающего меню
> комбо-бокса в VC++.NET . В VC++6 нужно просто растянуть
> его, а в VC7 по высоте не растягивается.
Вот с .net засада, я не знаю.
Опять таки API, MoveWindow. Высота задается, как (высота... 07.03.04 17:43  
Автор: alibek Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> > 3) Глупый вопрос, но как увеличить высоту выпадающего
> меню
> > комбо-бокса в VC++.NET . В VC++6 нужно просто
> растянуть
> > его, а в VC7 по высоте не растягивается.
> Вот с .net засада, я не знаю.

Опять таки API, MoveWindow. Высота задается, как (высота одной строки)*(количество строк + 2); высота строки определяется через CB_GetItemHeight.
[Win32] спасибо.. точняк, мсдн рулит 26.11.03 07:41  
Автор: makeworld Статус: Member
<"чистая" ссылка>
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach