Создание консоли!
wParam - ясно , а lParam вроде возвращает 32 битное слово.
Пытаюсь прочитать состояние каждого бита (0 или 1) следующим
образом :
значение & маска == маска, если бит УСТАНОВЛЕН и
значение & маска == 0, если бит СБРОШЕН
маска у меня - 0x01 , 0x02 , 0x04 , 0x08 , 0x10 и т.д.
Весь прикол в том ,что код подобным образом работает только если маска - константа. Ну не делать же мне 32 константы - маски.Я попытался загнать маски в массив и сделал его const ,но
всё равно не работает как надо и пишет:
warning C4554: '&' : check operator precedence for possible error;
use parentheses to clarify precedence
Помогите please!
Кстати!
1. А почему не различаются right/left shift/ctrl/enter ?
2. Как из своей проги преключать caps,num,scroll lock'и? (чтобы индикация на клаве менялась)
3. Может где-то есть пример готовой консоли - хотелось бы глянуть!
if((значение & маска) == маска){}
>Как из своей проги преключать caps,num,scroll lock'и? (чтобы индикация на клаве менялась)
SetKeyboardState() или:
#include <windows.h>
void SetNumLock( BOOL bState )
{
BYTE keyState[256];
GetKeyboardState((LPBYTE)&keyState);
if( (bState && !(keyState[VK_NUMLOCK] & 1)) ||
(!bState && (keyState[VK_NUMLOCK] & 1)) )
{
// Simulate a key press
keybd_event( VK_NUMLOCK,
0x45,
KEYEVENTF_EXTENDEDKEY | 0,
0 );
// Simulate a key release
keybd_event( VK_NUMLOCK,
0x45,
KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP,
0);
}
}
void main()
{
SetNumLock( TRUE );
}
Спасиба! Я бы продолжал тупить , если б не ты!