開発環境 Microsoft Visual C++ 2010 Express (SP1)
実行環境 Microsoft Windows XP Home Edition (SP3)
プロジェクトの種類 Win32 プロジェクト
プロジェクト名 RadioButton
アプリケーションの種類 Windows アプリケーション
追加のオプション 空のプロジェクト
文字セット Unicode

RadioButton.cpp
#include <tchar.h>
#include <Windows.h>
#include <WindowsX.h>
#include "resource.h"
 
INT_PTR CALLBACK DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
void OnOK(HWND hDlg);
 
int APIENTRY _tWinMain(
	HINSTANCE	hInstance,
	HINSTANCE	hPrevInstance,
	LPTSTR		lpCmdLine,
	int		nCmdShow)
{
	DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG), NULL, DialogProc);
	return 0;
}
 
INT_PTR CALLBACK DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	INT_PTR iRetVal = TRUE;
 
	switch (uMsg) {
	case WM_COMMAND:
		switch (LOWORD(wParam)) {
		case IDOK:
			OnOK(hwndDlg);
			break;
		}
		break;
	case WM_INITDIALOG:
		Button_SetCheck(GetDlgItem(hwndDlg, IDC_RADIO1), BST_CHECKED);
		break;
	case WM_CLOSE:
		EndDialog(hwndDlg, 0);
		break;
	default:
		iRetVal = FALSE;
	}
	return iRetVal;
}
 
void OnOK(HWND hDlg)
{
	LRESULT	lr;
	int	i1, i2, i3;
 
	i1 = GetDlgItemInt(hDlg, IDC_EDIT1, NULL, TRUE);
	i2 = GetDlgItemInt(hDlg, IDC_EDIT2, NULL, TRUE);
	lr = Button_GetCheck(GetDlgItem(hDlg, IDC_RADIO1));
	if (lr == BST_CHECKED) {
		i3 = i1 + i2;
	} else {
		i3 = i1 - i2;
	}
	SetDlgItemInt(hDlg, IDC_EDIT3, i3, TRUE);
}
 

resource.h
#define IDD_DIALOG	100
 
#define IDC_STATIC	-1
#define IDC_EDIT1	1000
#define IDC_EDIT2	1001
#define IDC_EDIT3	1002
#define IDC_RADIO1	1003
#define IDC_RADIO2	1004
 

RadioButton.rc
#include <windows.h>
#include "resource.h"
 
IDD_DIALOG DIALOGEX 300, 200, 130, 55
STYLE WS_POPUPWINDOW | WS_MINIMIZEBOX
EXSTYLE WS_EX_APPWINDOW
CAPTION "RadioButton"
FONT 9, "MS Pゴシック"
BEGIN
	EDITTEXT	IDC_EDIT1,4,4,36,12
	EDITTEXT	IDC_EDIT2,44,4,36,12
	EDITTEXT	IDC_EDIT3,88,4,36,12
	CONTROL		"+",IDC_RADIO1,"Button",BS_AUTORADIOBUTTON | WS_GROUP,
			8,32,28,12
	CONTROL		"-",IDC_RADIO2,"Button",BS_AUTORADIOBUTTON,
			40,32,28,12
	GROUPBOX	"演算子",IDC_STATIC,4,20,76,32,WS_GROUP
	DEFPUSHBUTTON	"OK",IDOK,88,24,26,16
END
 
最終更新:2012年09月01日 16:45