Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Сообщения от органов управления в диалоговом окне

279
11 ноября 2005 года
bave
456 / / 07.03.2004
Эх... Редко мне приходится делать в своих приложениях диалоговые окна...
вобщем у меня вопрос как работать с некоторыми
элементами управления:
у меня в диалоговом окне несколько элементов -
ползунков (IDC_SLIDER1 ... IDC_SLIDER18 ),
и одно поле ввода (IDC_EDIT1).
Но функция диалогового окна пока их сообщения не
обрабатывает, она сейчас такая:

BOOL CALLBACK DlgProc(HWND hdlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
// Инициализация диалоговой панели
case WM_INITDIALOG:
{
return TRUE;
}
case WM_COMMAND:
{
switch(wParam)
{
case IDOK:

case IDCANCEL:
{
EndDialog(hdlg, 0);
return TRUE;
}
}
}
}
return FALSE;
}

Чё нужно добавить в функцию диалогового окна, чтоб
перехватывать сообшения от этих слайдеров, (ну был
ли ползунок сдвинут вперёд или назад) и ну сообщения от поля Edit тоже получать.
292
11 ноября 2005 года
Matush
726 / / 14.01.2004
Все также как и не для диалогового окна.
Для слайдеров:

NM_RELEASEDCAPTURE
lpnmh = (LPNMHDR) lParam;
Notifies a trackbar control's parent window that the control is releasing mouse capture. This notification is sent in the form of a WM_NOTIFY message.


 
Код:
case WM_NOTIFY:
    switch(((LPNMHDR)lParam)->code)
    {
    case NM_RELEASEDCAPTURE:
.........................
        return 0;
    }
    break;



для едита:

The EN_CHANGE notification message is sent when the user has taken an action that may have altered text in an edit control. Unlike the EN_UPDATE notification message, this notification message is sent after the system updates the screen. The parent window of the edit control receives this notification message through the WM_COMMAND message.

 
Код:
case WM_COMMAND:
    switch(HIWORD(wParam))
    {
    case EN_CHANGE:
.........................
        return 0;
    }


MSDN рулит :)
279
13 ноября 2005 года
bave
456 / / 07.03.2004
Влт еще вопрос:
когда я закрываю окно мне надо считать из
полей EDIT то что в них введено, для этого мне
надо послать окну сообщение:
cbText = SendMessage(hEdit, EM_GETLINE, 0,(LPARAM)(LPSTR)chBuff); - а откуда я получу hEdit
если у меня известен только его идентификатор -
IDC_EDIT1???
292
14 ноября 2005 года
Matush
726 / / 14.01.2004
Цитата:
Originally posted by bave
а откуда я получу hEdit
если у меня известен только его идентификатор -
IDC_EDIT1???



The GetDlgItem function retrieves the handle of a control in the specified dialog box.

HWND GetDlgItem(
HWND hDlg, // handle of dialog box
int nIDDlgItem // identifier of control
);

430
14 ноября 2005 года
craftyfox
157 / / 20.02.2000
Цитата:
Originally posted by Matush
The GetDlgItem function retrieves the handle of a control in the specified dialog box.

HWND GetDlgItem(
HWND hDlg, // handle of dialog box
int nIDDlgItem // identifier of control
);


Проще SendDlgItemMessage

292
15 ноября 2005 года
Matush
726 / / 14.01.2004
Цитата:
Originally posted by craftyfox
Проще SendDlgItemMessage


Спасибо, учту :)

1.9K
13 января 2007 года
bad_duck
59 / / 29.07.2003
Цитата: Matush
The GetDlgItem function retrieves the handle of a control in the specified dialog box.

HWND GetDlgItem(
HWND hDlg, // handle of dialog box
int nIDDlgItem // identifier of control
);



Никак не могу найти, как получить идентификатор контрола из его "названия". Т.е. есть у меня, к примеру, IDC_COMBO1. Как из него получить целое значение для GetDlgItem?

355
13 января 2007 года
<SCORP>
786 / / 21.10.2006
Цитата: craftyfox
Проще SendDlgItemMessage



а ещё проще

 
Код:
UINT GetDlgItemText(          HWND hDlg,
    int nIDDlgItem,
    LPTSTR lpString,
    int nMaxCount
);


а IDC_COMBO1 это и есть идентификатор контрола. это число. зайди в resource.h и посмотри -- он там задефайнен.
http://msdn2.microsoft.com/en-gb/library/ms645489.aspx
1.9K
13 января 2007 года
bad_duck
59 / / 29.07.2003
Muchos gracios, amigo!
Вот я балбес. Я забыл подключить resource.h
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог