|
// 윈도우즈 API
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
// 실행윈도우 설정 및 실행
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
static char szAppName[] = "SvmToy"; // 실행파일명
MSG msg;
WNDCLASSEX wndclass;
wndclass.cbSize = sizeof(wndclass);
wndclass.style = CS_HREDRAW | CS_VREDRAW;
wndclass.lpfnWndProc = WndProc;
wndclass.cbClsExtra = 0;
wndclass.cbWndExtra = 0;
wndclass.hInstance = hInstance;
wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
wndclass.hbrBackground = (HBRUSH) GetStockObject(BLACK_BRUSH);
wndclass.lpszMenuName = NULL;
wndclass.lpszClassName = szAppName;
wndclass.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
RegisterClassEx(&wndclass);
main_window = CreateWindow(szAppName, // window class name
"SVM Toy", // 윈도우 캡션
WS_OVERLAPPEDWINDOW,// window style
CW_USEDEFAULT, // initial x position
CW_USEDEFAULT, // initial y position
XLEN, // initial x size
YLEN+52, // initial y size
NULL, // parent window handle
NULL, // window menu handle
hInstance, // program instance handle
NULL); // creation parameters
ShowWindow(main_window, iCmdShow);
UpdateWindow(main_window);
// 포인트색 변경버튼
CreateWindow("button", "Change", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
0, YLEN, 50, 25, main_window, (HMENU) ID_BUTTON_CHANGE, hInstance, NULL);
// 분류시작 버튼
CreateWindow("button", "Run", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
50, YLEN, 50, 25, main_window, (HMENU) ID_BUTTON_RUN, hInstance, NULL);
// 화면삭제 버튼
CreateWindow("button", "Clear", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
100, YLEN, 50, 25, main_window, (HMENU) ID_BUTTON_CLEAR, hInstance, NULL);
// 화면저장 버튼
CreateWindow("button", "Save", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
150, YLEN, 50, 25, main_window, (HMENU) ID_BUTTON_SAVE, hInstance, NULL);
// 불러오기 버튼
CreateWindow("button", "Load", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
200, YLEN, 50, 25, main_window, (HMENU) ID_BUTTON_LOAD, hInstance, NULL);
// 파라미터 수정창
edit = CreateWindow("edit", NULL, WS_CHILD | WS_VISIBLE,
250, YLEN, 250, 25, main_window, (HMENU) ID_EDIT, hInstance, NULL);
// 처음부터 수정시작
Edit_SetText(edit,DEFAULT_PARAM);
// 포인트 색상
brush1 = CreateSolidBrush(colors[4]);
brush2 = CreateSolidBrush(colors[5]);
brush3 = CreateSolidBrush(colors[6]);
window_dc = GetDC(main_window);
buffer = CreateCompatibleBitmap(window_dc, XLEN, YLEN);
buffer_dc = CreateCompatibleDC(window_dc);
SelectObject(buffer_dc, buffer);
PatBlt(buffer_dc, 0, 0, XLEN, YLEN, BLACKNESS);
while (GetMessage(&msg, NULL, 0, 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
} // 실행 윈도우 설정
//---------------------------------------------------------------------------
// 파일명 얻기
int getfilename( HWND hWnd , char *filename, int len, int save)
{
OPENFILENAME OpenFileName; // OpenDialog
memset(&OpenFileName,0,sizeof(OpenFileName));
filename[0]='\0';
OpenFileName.lStructSize = sizeof(OPENFILENAME);
OpenFileName.hwndOwner = hWnd;
OpenFileName.lpstrFile = filename;
OpenFileName.nMaxFile = len;
OpenFileName.Flags = 0;
return save?GetSaveFileName(&OpenFileName):GetOpenFileName(&OpenFileName);
}
|