информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Spanning Tree Protocol: недокументированное применениеАтака на InternetСтрашный баг в Windows
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Очередное исследование 19 миллиардов... 
 Оптимизация ввода-вывода как инструмент... 
 Зловреды выбирают Lisp и Delphi 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
если вы видите этот текст, отключите в настройках форума использование JavaScript
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
[Win32] Вот MSDN рулит-то! Меня почти всегда выручал ;-)))) 25.11.03 09:51  Число просмотров: 2275
Автор: 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-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach