1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
|
#include <windows.h>
#include <stdlib.h>
#define MY_CLASS TEXT("my_class")
#define BUTTON_RUN 0
#define TEXT_DEC 1
#define LABEL_BIN 2
HWND lblBin, txtDec;
LRESULT CALLBACK WindowProc(
HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
{
switch(msg){
case WM_COMMAND:
if(LOWORD(wp) == BUTTON_RUN){
/***************************************************
//2進数に変換する
****************************************************/
TCHAR jyuStr[255];
TCHAR nisinStr[17];
TCHAR tmp[2];
int nisin[16];
int jyu;
int i;
//入力した数値を受け取る
GetWindowText(txtDec, jyuStr, lstrlen(jyuStr));
jyu = atoi(jyuStr);
//変換
for(i=0; i<16; i++){
nisin[i] = jyu % 2;
jyu = jyu - 2;
}
//文字列に直す
itoa(nisin[15], tmp, 2);
lstrcpy(nisinStr, tmp);
for(i=14; i>=0; i--){
itoa(nisin[i], tmp, 2);
lstrcat(nisinStr, tmp);
}
//表示
SetWindowText(lblBin, nisinStr);
/****************************************************/
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, msg, wp, lp);
}
return 0;
}
int WINAPI WinMain(
HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
MSG msg;
WNDCLASS wc;
HWND hWnd;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hInstance = hInstance;
wc.lpfnWndProc = WindowProc;
wc.lpszClassName = MY_CLASS;
wc.lpszMenuName = NULL;
wc.style = CS_VREDRAW | CS_HREDRAW;
if(!RegisterClass(&wc)){ return 0; }
hWnd = CreateWindow(
MY_CLASS, TEXT("10進数→2進数"),
WS_OVERLAPPEDWINDOW | WS_VISIBLE,
CW_USEDEFAULT, CW_USEDEFAULT,
230, 69,
NULL, NULL, hInstance, NULL);
txtDec = CreateWindow(
TEXT("EDIT"), TEXT(""),
WS_CHILD | WS_VISIBLE | WS_BORDER,
0, 0, 150, 20,
hWnd, (HMENU)TEXT_DEC, hInstance, NULL);
lblBin = CreateWindow(
TEXT("STATIC"), TEXT(""),
WS_CHILD | WS_VISIBLE,
0, 20, 150, 20,
hWnd, (HMENU)LABEL_BIN, hInstance, NULL);
CreateWindow(
TEXT("BUTTON"), TEXT("実行"),
WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
150, 0, 80, 40,
hWnd, (HMENU)BUTTON_RUN, hInstance, NULL);
if(hWnd == NULL){ return 0; }
while(GetMessage(&msg, hWnd, 0, 0) > 0){
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (int)msg.wParam;
}
|