Азбука программирования в Win32 API


Азбука программирования в Win32 API - стр. 130


MAKELONG(0,10));

SendMessagc(hTrackbarWnd. TBM^SETPOS, TRUE, 5); return TRUE; case WMJVSCROLL: SendMessagediTrackbarWnd, TBM^SETPOS, TRUE,

GetDlgIiemInt(hDlg, ID_Edit, NULL,!)); return TRUE; case WMJISCROLL: SetDlgltemlntOiDlg, ID_Edit, SendMcssage(hTrackbarWnd,

TBMJ3ETPOS, 0,0), TRUE); case WM_COMMAND: switch(LOWORD(wParam))

case ID OK:

154

EndDialog(hDlg,0); return TRUE;

break;

i i

return FALSE;

После того, как эта программа будет запущена и в основном меню программы будет выбран элемент «Dialog», на экране появится диалого­вое окно, вид которого показан на рис. 14.

Tiackbar Demo DialogQ!

,__...

Рис. 14. Диалоговое окно со спином и трскбаром

Попробуйте изменить положение спина. При этом изменится положе­ние слайдера на трекбаре. Аналогично, если изменить положение слайде-ра с помощью мыши, то изменится значение в окне редактирования, которое является приятельским окном спина.

При написании этой программы использовались две новые функции. Первая, GetDlgItemInt(), описана в файле winuser.h следующим образом:

WINUSERAPI UINT WINAPI GetDlgItemInt(HWND hDlg,     int nIDDlgllem,

BOOL «IpTraiislated. BOOL bSigned);

Эта функция берет число, записанное в окне редактирования (оно представлено в виде строки), преобразует его в числовой вид и возвраща­ет числовое значение. В программе мы используем эту функцию для того чтобы считать значение спина и соответствующим образом изменить положение слайдера трекбара.

Вторая функция, описанная в том же файле, имеет следующий прототип:

WINUSERAPI BOOL WINAPI SetDIg[temTextA(HWND hDlg. int ninDlgltem,

LPCSTR IpString); WINUSERAPI BOOL WINAPI SetDlgItcmTcxtW(HWND hDlg. int nlDDlgltcm,

155

LPCWSTR IpString);

#ifdefUNICODE

tfdefine SetDlgltemText SetDlgltemTextW

#e!se

#defme SetDlgltemText SetDlgltemTextA

#endif//! UNICODE

Она производит действие, обратное GetDlgItemInt(), т. е. получает в качестве аргумента целое число и возвращает его представление в виде строки. В программе она используется для того, чтобы в окне редактиро­вания отобразить номер позиции слайдера. Все просто, не так ли?




Начало  Назад  Вперед



Книжный магазин