Как мне назначить окно приятеля для Spin Control с помощью ResEdit? (C ++) Кроме того, как узнать, какие сообщения отправляет элемент управления при нажатии стрелок вверх и вниз (на элементе управления). Код ResEdit:

// Generated by ResEdit 1.5.7
// Copyright (C) 2006-2010
// http://www.resedit.net

HINSTANCE hInst = GetModuleHandle(0);
WNDCLASSEX wcex;
ZeroMemory(&wcex, sizeof wcex);
wcex.cbSize         = sizeof wcex;
wcex.hbrBackground  = (HBRUSH)(COLOR_3DFACE + 1);
wcex.lpszMenuName   = 0;


wcex.style          = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc    = DefWindowProc;
wcex.hInstance      = hInst;
wcex.hIcon          = LoadIcon(0, (LPCTSTR)IDI_APPLICATION);
wcex.hCursor        = LoadCursor(NULL, IDC_ARROW);
wcex.lpszClassName  = "WndClass0";
RegisterClassEx(&wcex);

HFONT hfont0 = CreateFont(-13, 0, 0, 0, 0, FALSE, FALSE, FALSE, 1, 0, 0, 0, 0, ("Lucida Sans"));
HWND hwnd = CreateWindowEx(0, ("WndClass")0, ("Bet"), WS_CAPTION | WS_VISIBLE | WS_POPUP | WS_SYSMENU, 0, 0, 1997564195, 218, 0, 0, hInst, 0);
HWND hCtrl0_0 = CreateWindowEx(0, WC_BUTTON, ("Enter Bet Amount"), WS_VISIBLE | WS_CHILD | 0x00000007, 10, 28, 206, 169, hwnd, (HMENU)IDC_STATIC, hInst, 0);
SendMessage(hCtrl0_0, WM_SETFONT, (WPARAM), FALSE);
HWND hCtrl0_1 = CreateWindowEx(0, UPDOWN_CLASS, 0, WS_VISIBLE | WS_CHILD | UDS_ALIGNLEFT | UDS_ARROWKEYS | UDS_SETBUDDYINT, 160, 84, 18, 34, hwnd, (HMENU)IDC_SPIN1, hInst, 0);
SendMessage(hCtrl0_1, WM_SETFONT, (WPARAM), FALSE);
HWND hCtrl0_2 = CreateWindowEx(0, WC_BUTTON, ("OK"), WS_VISIBLE | WS_CHILD | WS_TABSTOP | BS_NOTIFY, 22, 178, 50, 26, hwnd, (HMENU)IDC_OK, hInst, 0);
SendMessage(hCtrl0_2, WM_SETFONT, (WPARAM), FALSE);
HWND hCtrl0_3 = CreateWindowEx(0, WC_BUTTON, ("Reset"), WS_VISIBLE | WS_CHILD | WS_TABSTOP, 100, 178, 78, 26, hwnd, (HMENU)IDC_CANCE, hInst, 0);
SendMessage(hCtrl0_3, WM_SETFONT, (WPARAM), FALSE);
3
viraj 29 Авг 2011 в 08:44

3 ответа

Лучший ответ

Документация по контролю прокрутки находится здесь . Чтобы назначить друга, вы можете использовать UDM_SETBUDDY :

SendMessage( hwndSpinControl, UDM_SETBUDDY, hwndBuddyControl, NULL );

Вы не будете получать уведомления об изменении значений с помощью уведомления UDN_DELTAPOS.

3
Mike Kwan 29 Авг 2011 в 09:34

Вы уже используете ResEdit, почему бы вам просто не использовать встроенное свойство auto-buddy в окне свойств?

0
user2058002user2058002 1 Сен 2011 в 18:32

Установите значение поля Spin Control «Вставить после» рядом с полем Text Edit. Выберите значение для «Aligment» (например, флаг стиля UDS_ALIGNRIGHT). Вы также можете установить истинное значение для «Автоподзавода» (флаг стиля UDS_AUTOBUDDY). Spin Control отправляет сообщение WM_VSCROLL со своим идентификатором.

0
Valery Mukhin 24 Авг 2021 в 09:14