ALTE DOCUMENTE
|
||||||
Контрольный переключатель (check box) & 14514f519o #1087;рименяется для установки или сброса определенных опций. Этот элемент представляет собой небольшой прямоугольник, который может быть «отмечен» крестиком или «птичкой», и текст, описывающий контрольный переключатель или его функцию. Если внутри прямоугольника переключателя имеется метка, переключатель называется выбранным или установленным, а если метка отсутствует, переключатель называется невыбранным или сброшенным. Контрольный переключатель, как правило, является частью диалога и определяется при описании диалога в файле ресурсов. Для добавления контрольного переключателя в окно используется оператор CHECKBOX
CHECKBOX " ", ID, X, Width, Height[,
"строка" ID X Y - координаты верхнего левого угла переключателя, a Width Height задает стиль переключателя. Если для стиля не указывается конкретное значение, используется стиль по умолчанию. Это означает, что текст отображается справа от прямоугольника переключателя и пользователь может перейти к данному переключателю при помощи мыши или клавиши [Tab]. Работая с Windows, Вы, вероятно, заметили, что при воздействии на контрольные переключатели они изменяют свое состояние. С точки зрения программы это не всегда происходит автоматически.
CHECKBOX при описании ресурсов, Вы создаете ручной переключатель, изменением состояния которого должна управлять Ваша программа (как это сделать, будет показано ниже). Вы можете создать автоматический переключатель и возложить все функции по изменению состояния контрольного переключателя на Windows.
Автоматический контрольный переключатель создается с помощью оператора AUTOCHECKBOX, который имеет такой же вид, как и CHECKBOX. Windows сама управляет автоматическими контрольными переключателями, изменяя их состояние каждый раз, когда пользователь воздействует на них.
#include "Mydialog.h"
#include <Windows.h>
MYMENU MENU
MYMENU ACCELERATORS
MYDB DIALOG 18, 18, 142, 92
CAPTION " "
STYLE DS_MODALFRAME|WS_POPUP|WS_CAPTION|WS_SYSMENU
Mydialog.h, который приведен ниже. Этот файл определяет также идентификаторы, которые используются в последующих примерах этой главы.
#define ID_DIALOG1 100
#define ID_STATUS 101
#define IDM_HELP 102
#define ID_CB1 103
#define ID_CB2 104
#define ID_CT1 105
#define ID_GT1 106
#define ID_RB1 107
#define ID_RB2 108
#define ID_GB1 200
define ID GB 201
Tab VM COMMAND wParam API SendDlgItemMessage BM SETCHECK SendDlgItemMessage
LONG SendDlgItemMessage(HWND hwnd, int ID, UINT msg,
WPARAM wParam LPARAM lParam
BM SETCHECK wParam lParam BM SETCHECK
BM SETCHECK
BM GETCHECK wParam lParam
#include <Windows.h>
#include <String.h>
#include <Stdio.h>
#include "Mydialog.h"
LRESULT CALLBACK WindowFunc(HWND,UINT,WPARAM,LPARAM);
BOOL CALLBACK DialogFunc(HWND,UINT,WPARAM,LPARAM);
char szWinName[]=" "; //
HINSTANCE hInst;
int status1=0; //
int status2=0; //
int WINAPI WinMain(HINSTANCE hThisInst,
HINSTANCE hPrevInst,
LPSTR lpszArgs,
int nWinMode)
}
return msg.wParam;
}
// Следующая функция вызывается операционной системой // Windows и получает в качестве параметров сообщения
LRESULT CALLBACK WindowFunc HWND hwnd
UINT message,
WPARAM wParam,
LPARAM lParam)
break;
case WM_DESTROY: //
PostQuitMessage(0);
break;
default:
// Все сообщения, не обрабатываемые в данной
// функции, направляются на обработку по
// умолчанию
return DefWindowProc(hwnd,message,
wParam,lParam);
}
return 0;
}
BOOL CALLBACK DialogFunc(HWND hdwnd,
UINT message,
WPARAM wParam,
LPARAM lParam)
}
return 0;
}
status status
Пример окна диалога с контрольными переключателями
Windows
case ID CB
// Пользователь выбрал этот переключатель
// Поэтому нужно изменить его состояние
if(!SendDlgItemMessage(hdwnd,ID_CB1,
BM_GETCHECK,0,0))
SendDlgItemMessage(hdwnd,ID_CB1,
BM_SETCHECK,1,0);
else //
SendDlgItemMessage(hdwnd,ID_CB1,
BM SETCHECK
return
BM SETCHECK WM INITDIALOG
case WM INITDIALOG
// установить состояние
// контрольных переключателей
SendDlgItemMessage hdwnd ID CB
BM_SETCHECK,status1,0);
SendDlgItemMessage(hdwnd,ID_CB2,
BM_SETCHECK,status2,0);
return 1;
|