информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Где водятся OGRыСтрашный баг в WindowsАтака на Internet
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Кавычки уличили Google в заимствовании... 
 Некоторые пароли от G Suite хранились... 
 Microsoft выпустила Windows Sandbox 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[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-2019 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach