コード例 #1
0
ファイル: tab_global.cpp プロジェクト: ttsping/columns_ui
	static LRESULT WINAPI EditHook(HWND wnd, UINT msg, WPARAM wp, LPARAM lp)
	{
		switch (msg)
		{
			/*	case WM_KEYDOWN:
			if (!(HIWORD(lp) & KF_REPEAT) && (wp == 'a' || wp =='A') &&  (GetKeyState(VK_CONTROL) & KF_UP))
			{
			uSendMessage(wnd, EM_SETSEL, 0, -1);
			return 0;
			}

			break;*/
		case WM_CHAR:
			if (!(HIWORD(lp) & KF_REPEAT) && (wp == 1) && (GetKeyState(VK_CONTROL) & KF_UP))
			{
				uSendMessage(wnd, EM_SETSEL, 0, -1);
				return 0;
			}
			break;
		}
		return uCallWindowProc(editproc, wnd, msg, wp, lp);
	}
コード例 #2
0
ファイル: menubar.cpp プロジェクト: i7voodoo/columns_ui
LRESULT WINAPI menu_extension::hook(HWND wnd,UINT msg,WPARAM wp,LPARAM lp)
{

	switch(msg)
	{
	case WM_KILLFOCUS:
		{
			m_menu_key_pressed = false;
			update_menu_acc();
			wnd_prev_focus = nullptr;
		}
		break;
	case WM_SETFOCUS:
		{
			m_menu_key_pressed = false;
			show_menu_acc();
			wnd_prev_focus=(HWND)wp;
		}
		break;
	case WM_CHAR:
		if (wp == ' ') return 0;
		break;
	case WM_SYSKEYDOWN:
	case WM_KEYDOWN:
		{
			auto lpkeyb = uih::GetKeyboardLParam(lp);
			if ( (wp == VK_ESCAPE || (wp == VK_F10 && !HIBYTE(GetKeyState(VK_SHIFT))) || wp==VK_MENU) && !lpkeyb.previous_key_state)
			{
				update_menu_acc();
				if (wp == VK_ESCAPE)
				{
					if (wnd_prev_focus && IsWindow(wnd_prev_focus))
						SetFocus(wnd_prev_focus);
				}
				else
				{
					m_menu_key_pressed = true;
					PostMessage(wnd, TB_SETHOTITEM, -1, 0);
				}
				return 0;
			}
			else if ( (wp == VK_SPACE) && !lpkeyb.previous_key_state) 
			{
				HWND wndparent = uFindParentPopup(wnd);
				if (wndparent) PostMessage(wndparent, WM_SYSKEYDOWN, wp, lp | (1<<29) ); 
				return 0;
			}
		}
		break;
	case WM_SYSKEYUP:
		{
			if (m_menu_key_pressed && (wp==VK_MENU || wp == VK_F10))
			{
				if (wnd_prev_focus && IsWindow(wnd_prev_focus))
					SetFocus(wnd_prev_focus);
				m_menu_key_pressed = false;
				return 0;
			}
		}
		break;
	}
	return uCallWindowProc(menuproc,wnd,msg,wp,lp);
}