Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Работа со спином

Rusa


Во многих ситуациях Вы, несомненно, найдете удобным использование нового элемента управления 111r1710b , называемого спином (up down control spin control scroll bar). Он состоит из кнопок со стрелками, которые помещаются на концах линейки прокрутки, и не имеет полосы прокрутки, которая в линейках находится между этими кнопками. Если Вы уже работали с различными приложения 111r1710b ми Windows Windows предусмотрели такой элемент управления 111r1710b , как спин. Как Вы вскоре увидите, работа со спином очень похожа на работу с линейкой прокрутки.



Существует два варианта использования 111r1710b спина:

2) он может работать в сочетании с другим элементом управления 111r1710b , называемым в этом случае приятельским окном (buddy window

В качестве приятельского окна чаще всего используется окно редак­тирования 111r1710b (edit box spin control spinner window up down control». Практически все действия по управлению спином выполняются автоматически: это делает его очень простым и удобным элементом. Ниже приведены два примера работы со спином. В первом из них спин работает как небольшая линейка прокрутки, а во втором используется в сочетании с окном редактирования 111r1710b .

Для создания 111r1710b спина используется функция CreateUpDownControl

HWND CreateUpDownControl(DWORD Style, int X, int Y,

int Width, int Height, 

HWND hParent, int ID,

HINSTANCE hInst,

HWND hBuddy, int Max,

int Min int StarPos

Style определяет стиль окна спина и должен содержать стандар­тные значения 111r1710b стилей WS CHILD WS VISIBLE WS BORDER

«up-down control»

UDS ALIGNLEFT

UDS ALIGNRIGHT

UDS ARROWKEYS

Разрешается использование клавиш со стрелками для изменения 111r1710b текущего значения 111r1710b спина

UDS AUTOBUDDY

UDS HORZ

UDS NOTHOUSANDS

Запрещается отображение запятой (для разделения 111r1710b триад) в больших числах (только для спинов с окнами редак­тирования 111r1710b )

UDS_SETBUDDYINT



UDS WRAP

«Переворот» позиции спина при достижении граничного значения 111r1710b

X Y Width Height hParent ID hInst задает дескриптор активного приложения 111r1710b . Дескриптор приятельского (buddy hBuddy NULL

Минимальное и максимальное значения 111r1710b позиций спина задаются параметрами Min меньше значения 111r1710b Min StarPos

CreateUpDownControl возвращает дескриптор элемента управления 111r1710b .

Сообщения 111r1710b спина. WM VSCROLL lParam По­скольку одновременно может существовать несколько элементов управления 111r1710b , посылающих сообщение WM VSCROLL lParam SendMessage UDM GETPOS В этом случае функ­ция возвратит значение текущего положения 111r1710b спина.

UDM GETPOS спин может принимать и обрабатывать другие сообщения 111r1710b ; наиболее часто используемые из них приведены в таблице 11.2. Например, используя сообщение UDM SETPOS

Сообщения 111r1710b , которые можно посылать спину

UDM GETBUDDY

Получение дескриптора приятельского окна. Дескриптор содержится в младшем слове возвращаемого значения 111r1710b . wParam lParam

UDM GETPOS

Получение текущей позиции спина. Значение текущей по­зиции содержится в младшем слове возвращаемого значения 111r1710b . wParam lParam



UDM_GETRANGE

Получение диапазона прокрутки спина. Максимальное зна­чение позиции содержится в младшем, а минимальное - в старшем слове возвращаемого значения 111r1710b . wParam lParam

UDM_SETBUDDY

wParam lParam

UDM_SETPOS

wParam lParam

UDM_SETRANGE

wParam lParam

Приведенная ниже программа создает спин, используемый как отдельный элемент прокрутки. Спин создается в окне диалога. В данном примере он не имеет приятельского окна. Возможные значения 111r1710b позиций создаваемого спина находятся в диапазоне от 0 до 100, начальное значение позиции равно 50. При изменении текущей позиции спина значение его новой позиции отображается в рабочей области окна диалога.

#include <Windows.h>

#include <String.h>

#include <Stdio.h>

#include <Commctrl.h>

#include "Updown.h"

LRESULT CALLBACK WindowFunc(HWND,UINT,WPARAM,LPARAM);

BOOL CALLBACK DialogFunc(HWND,UINT,WPARAM,LPARAM);

char szWinName[] = " "; //

HINSTANCE hInst;

int WINAPI WinMain (HINSTANCE hThisInst,

HINSTANCE hPrevInst,

LPSTR lpszArgs,

int nWinMode)

return msg. wParam;

}

// Windows и получает в качестве параметров сообщения 111r1710b

// из очереди сообщений данного приложения 111r1710b

LRESULT CALLBACK WindowFunc(HWND hwnd,

UINT message,

WPARAM wParam,

LPARAM lParam)

break;

case WM_DESTROY: //

PostQuitMessage

break;

default:

// Все сообщения 111r1710b , не обрабатываемые в данной

// функции, направляются на обработку по

// умолчанию

return DefWindowProc(hwnd,message,

wParam,lParam);

}

return 0;

}

BOOL CALLBACK DialogFunc(HWND hdwnd,

UINT message,



WPARAM wParam,

LPARAM lParam)

case WM_VSCROLL: // Обработка сообщения 111r1710b спина

if(udWnd == (HWND)lParam )

}

return 0;


Spin h

#include <Windows.h>

#include "Updown.h"

MYMENU MENU

MYMENU ACCELERATORS

MYDB DIALOG 18, 18, 142, 92

CAPTION " "

STYLE DS_MODALFRAME|WS_POPUP|WS_CAPTION|WS_SYSMENU

Updown h

#define  IDM_DIALOG 100

#define  IDM_HELP 101

define ID UPDOWN 102

В приведенной программе спин создается в окне диалога. Это происходит при инициализации диалога во время обработки сообщения 111r1710b WM INITDIALOG

udWnd=CreateUpDownControl

(WS_CHILD|WS_BORDER|WS_VISIBLE,

10,10,50,50, hdwnd, ID_UPDOWN,

hInst, NULL, 100, 0, 50);

return

CreateUpDownControl hdwnd ID UPDOWN hInst NULL. Возможные значения 111r1710b позиций создаваемого спина находятся в диапазоне от 0 до 100, начальное значение позиции равно 50.

WM VSCROLL Ниже приводится фрагмент программы, обрабатывающей это сообщение. Дескриптор спина передается в параметре сообщения 111r1710b lParam lParam сравнивается с дескриптором спина, полученным в результате выполнения 111r1710b функции CreateUpDownControl Наша программа создает только один спин, реальные же приложения 111r1710b могут создавать несколько элементов управления 111r1710b , способных посылать сообщение WM VSCROLL

case WM_VSCROLL: // Обработка сообщения 111r1710b спина

if(udWnd == (HWND)lParam )

UDM GETPOS SendMessage Значение новой позиции спина содержится в младшем слове возвращаемого значения 111r1710b . Значение текущего положения 111r1710b спина отображается в рабочей области окна диалога.




Document Info


Accesari: 2914
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2025 )