Для выбора цвета попробуйте прочитать эту статью о получении цветов из любого места на экране.
Эта - более полная утилита, позволяющая вам делать то, что вы хотите. Разница заключается в захвате остановок по комбинации клавиш [Alt + Ctrl + P], где вы хотите остановиться по щелчку.
Во второй ссылке вам будут полезны следующие вызовы функций:
SetWindowPos(&wndTopMost, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
RegisterHotKey(m_hWnd, 0x1FEB, MOD_CONTROL | MOD_ALT, 0x50);
Первый сохраняет окно активным, а второй регистрирует Alt + Ctrl + P (и при нажатии на него окно получит событие WM_HOTKEY, при котором вы можете прекратить захват цветов). К сожалению, вы не можете использовать RegisterHotKey с кнопками мыши. Вы хотите, чтобы посмотреть в SetWindowsHookEx
С помощью SetWindowsHookEx вы можете быть уверены, что ваше приложение будет получать события даже без фокуса. Вызовите SetWindowsHookEx с хуком "WH_MOUSE" вместе с Процедура мыши .
Именно в этой процедуре вы получите сообщение мыши, прекратите захват, куда движется мышь (заблокируйте цвет), и используйте SetWindowPos, чтобы переместить ваше окно к вершине. Затем отмените регистрацию вашего хука с помощью UnhookWindowsHookEx .
Это довольно много вещей, которые вам, возможно, придется изучить, но на всех страницах MSDN, на которые я ссылался, есть масса информации, которая должна вам помочь, не говоря уже о том, готовы ли вы согласиться с ключом. комбинация вместо второй ссылки идеально подходит для вас.
Надеюсь, это поможет.