예제 #1
0
파일: np2class.cpp 프로젝트: utamaro/np2.js
void np2class_windowtype(HWND hWnd, UINT8 type) {

	RECT	rect;
	DWORD	style;

	GetClientRect(hWnd, &rect);
	style = GetWindowLong(hWnd, GWL_STYLE);
	switch(type) {
		case 0:
		default:
			style |= WS_CAPTION;
			np2class_enablemenu(hWnd, TRUE);
			break;

		case 1:
			style |= WS_CAPTION;
			np2class_enablemenu(hWnd, FALSE);
			break;

		case 2:
			style &= ~WS_CAPTION;
			np2class_enablemenu(hWnd, FALSE);
			break;
	}
	SetWindowLong(hWnd, GWL_STYLE, style);
	SetWindowPos(hWnd, 0, 0, 0, 0, 0,
					SWP_FRAMECHANGED | SWP_DRAWFRAME | 
					SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER);
	winloc_setclientsize(hWnd,
							rect.right - rect.left, rect.bottom - rect.top);
}
예제 #2
0
파일: subwind.cpp 프로젝트: perabuss/np2wii
static void kdsetwinsize(void) {

	int			width;
	int			height;
	WINLOCEX	wlex;

	wlex = np2_winlocexallwin(hWndMain);
	winlocex_setholdwnd(wlex, kdispwin.hwnd);
	keydisp_getsize(&width, &height);
	winloc_setclientsize(kdispwin.hwnd, width, height);
	winlocex_move(wlex);
	winlocex_destroy(wlex);
}
예제 #3
0
파일: np2class.cpp 프로젝트: utamaro/np2.js
void np2class_frametype(HWND hWnd, UINT8 thick) {

	RECT	rect;
	DWORD	style;

	GetClientRect(hWnd, &rect);
	style = GetWindowLong(hWnd, GWL_STYLE);
	if (thick) {
		style |= WS_THICKFRAME;
	}
	else {
		style &= ~WS_THICKFRAME;
	}
	SetWindowLong(hWnd, GWL_STYLE, style);
	SetWindowPos(hWnd, 0, 0, 0, 0, 0,
					SWP_FRAMECHANGED | SWP_DRAWFRAME | 
					SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER);
	winloc_setclientsize(hWnd,
							rect.right - rect.left, rect.bottom - rect.top);
}
예제 #4
0
파일: subwind.cpp 프로젝트: perabuss/np2wii
static LRESULT CALLBACK skproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) {

	switch(msg) {
		case WM_CREATE:
			np2class_wmcreate(hWnd);
			winloc_setclientsize(hWnd, skbdwin.width, skbdwin.height);
			np2class_windowtype(hWnd, (skbdcfg.type & 1) + 1);
			break;

		case WM_PAINT:
			skpaintmsg(hWnd);
			break;

		case WM_LBUTTONDOWN:
			if ((softkbd_down(LOWORD(lp), HIWORD(lp))) &&
				(skbdcfg.type & 1)) {
				return(SendMessage(hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0L));
			}
			break;

		case WM_LBUTTONDBLCLK:
			if (softkbd_down(LOWORD(lp), HIWORD(lp))) {
				skbdcfg.type ^= 1;
				wintypechange(hWnd, (skbdcfg.type & 1) + 1);
				sysmng_update(SYS_UPDATEOSCFG);
			}
			break;

		case WM_LBUTTONUP:
			softkbd_up();
			break;

		case WM_KEYDOWN:
		case WM_KEYUP:
			SendMessage(hWndMain, msg, wp, lp);
			break;

		case WM_ENTERMENULOOP:
			soundmng_disable(SNDPROC_SUBWIND);
			break;

		case WM_EXITMENULOOP:
			soundmng_enable(SNDPROC_SUBWIND);
			break;

		case WM_ENTERSIZEMOVE:
			soundmng_disable(SNDPROC_SUBWIND);
			winlocex_destroy(skbdwin.wlex);
			skbdwin.wlex = np2_winlocexallwin(hWnd);
			break;

		case WM_MOVING:
			winlocex_moving(skbdwin.wlex, (RECT *)lp);
			break;

		case WM_EXITSIZEMOVE:
			winlocex_destroy(skbdwin.wlex);
			skbdwin.wlex = NULL;
			soundmng_enable(SNDPROC_SUBWIND);
			break;

		case WM_MOVE:
			if (!(GetWindowLong(hWnd, GWL_STYLE) &
									(WS_MAXIMIZE | WS_MINIMIZE))) {
				RECT rc;
				GetWindowRect(hWnd, &rc);
				skbdcfg.posx = rc.left;
				skbdcfg.posy = rc.top;
				sysmng_update(SYS_UPDATEOSCFG);
			}
			break;

		case WM_CLOSE:
			DestroyWindow(hWnd);
			break;

		case WM_DESTROY:
			np2class_wmdestroy(hWnd);
			dd2_release(skbdwin.dd2hdl);
			skbdwin.hwnd = NULL;
			break;

		default:
			return(DefWindowProc(hWnd, msg, wp, lp));
	}
	return(0L);
}
예제 #5
0
파일: subwind.cpp 프로젝트: perabuss/np2wii
static LRESULT CALLBACK mdproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) {

	switch(msg) {
		case WM_CREATE:
			np2class_wmcreate(hWnd);
			winloc_setclientsize(hWnd, mdbgwin.width, mdbgwin.height);
			np2class_windowtype(hWnd, (mdbgcfg.type & 1) + 1);
			break;

		case WM_PAINT:
			mdpaintmsg(hWnd);
			break;

		case WM_KEYDOWN:
		case WM_KEYUP:
			SendMessage(hWndMain, msg, wp, lp);
			break;

		case WM_ENTERMENULOOP:
			soundmng_disable(SNDPROC_SUBWIND);
			break;

		case WM_EXITMENULOOP:
			soundmng_enable(SNDPROC_SUBWIND);
			break;

		case WM_ENTERSIZEMOVE:
			soundmng_disable(SNDPROC_SUBWIND);
			winlocex_destroy(mdbgwin.wlex);
			mdbgwin.wlex = np2_winlocexallwin(hWnd);
			break;

		case WM_MOVING:
			winlocex_moving(mdbgwin.wlex, (RECT *)lp);
			break;

		case WM_EXITSIZEMOVE:
			winlocex_destroy(mdbgwin.wlex);
			mdbgwin.wlex = NULL;
			soundmng_enable(SNDPROC_SUBWIND);
			break;

		case WM_MOVE:
			if (!(GetWindowLong(hWnd, GWL_STYLE) &
									(WS_MAXIMIZE | WS_MINIMIZE))) {
				RECT rc;
				GetWindowRect(hWnd, &rc);
				mdbgcfg.posx = rc.left;
				mdbgcfg.posy = rc.top;
				sysmng_update(SYS_UPDATEOSCFG);
			}
			break;

		case WM_CLOSE:
			DestroyWindow(hWnd);
			break;

		case WM_DESTROY:
			np2class_wmdestroy(hWnd);
			dd2_release(mdbgwin.dd2hdl);
			mdbgwin.hwnd = NULL;
			break;

		default:
			return(DefWindowProc(hWnd, msg, wp, lp));
	}
	return(0);
}