構文
short SetKeyinputMode(
short mode
);
パラメータ
- mode
-
[in] シフトモードの制御方法を指定します。
値 説明 ORIGINAL_SHIFT_MODE キーを押すとすぐにキーが確定します。 ALTERNATE_SHIFT_MODE 入力候補文字を表示し、SetKeyinputTimer関数で指定した時間が経過すると入力文字を確定します。
入力候補文字の表示中に[0][1][2][3][4][5][6][7][8][9][.]キーを押すと入力文字を確定し、次のカラムに押したキーの入力候補文字を表示します。
入力候補文字の表示中に[SHIFT]キーを押すと、入力文字をキャンセルします。
※このパラメータはレガシーです。新規にソフトウェアを作成される際は、ALTERNATE_SHIFT_MODE2をご使用ください。ALTERNATE_SHIFT_MODE2 入力候補文字を表示し、SetKeyinputTimer関数で指定した時間が経過すると入力文字を確定します。
入力候補文字の表示中に[0][1][2][3][4][5][6][7][8][9][.]キーを押すと入力文字を確定し、次のカラムに押したキーの入力候補文字を表示します。
入力候補文字の表示中に[SCAN][Q1][Q2][CLR][SHIFT][ENT][BS][F1][F2][F3]キーを押すと、入力文字を確定します。
MANUAL_SHIFT_MODE OSによるキー入力のシフトモードの制御を無効にします。 CURRENT_MODE 現在のシフトモードの制御方法を返します。
戻り値
本関数が設定を変更した後のシフトモードの制御方法を返します。
解説
MANUAL_SHIFT_MODEを設定すると、 [SHIFT]キーを押したときSHIFT_KEYキーコードを受け取ります。キーコードの詳細はキーコードを参照してください。必要条件
ヘッダファイル:
lib.hライブラリファイル:
libSTARTUPOPH5000.aOSバージョン:
TH15J06以降
サンプル
#include <stdio.h>
#include "lib.h"
#define TIME_UNIT 500
#define SHOW_TIME_MIN 0
#define SHOW_TIME_MAX 5
#define CURSOR_COLOR RGB_GREEN
extern void PrintChar(unsigned char);
extern void PrintSymbol(unsigned int);
static const char *shifttime[] =
{
"KINPUT_CHECK_MIN",
"1000 ",
"1500 ",
"KINPUT_CHECK_MAX",
};
static const char *shiftmode[] =
{
"ORIGINAL_SHIFT_MODE ",
"ALTERNATE_SHIFT_MODE2"
};
static unsigned short input_time;
static unsigned short output_time;
static void TimePrint(void)
{
GotoXY(1, 4);
printf(" ");
GotoXY(1, 4);
printf("%s\r\n", shifttime[input_time]);
SetKeyinputTimer((input_time + 1) * TIME_UNIT);
GotoXY(1, 5);
printf(" ");
GotoXY(1, 5);
output_time = SetKeyinputTimer(1);
printf("INPUT TIME = %d\r\n", output_time);
}
void main(void)
{
char c;
unsigned char exit_flg;
unsigned char mode_flg;
int i;
unsigned long save_bcolor;
GotoXY(1, 1);
printf("SHIFT Mode\r\n");
i = 1;
exit_flg = 0;
mode_flg = ALTERNATE_SHIFT_MODE2;
SetKeyinputMode(mode_flg);
input_time = 0;
SetKeyinputTimer(input_time * TIME_UNIT);
GotoXY(1, 3);
printf("%s", shiftmode[mode_flg]);
GotoXY(1, 4);
TimePrint();
GotoXY(1, 5);
output_time = SetKeyinputTimer(1);
printf("INPUT TIME = %d\r\n", output_time);
save_bcolor = SetBackColor(-1L);
SetBackColor(CURSOR_COLOR);
GotoXY(i, 7);
PrintSymbol('_');
while(1)
{
if (kbhit())
{
c = getchar();
switch(c)
{
case BS_KEY:
exit_flg = 1;
break;
case F1_KEY:
case SHIFT_F1_KEY:
SetBackColor(save_bcolor);
GotoXY(1, 3);
printf(" ");
if (mode_flg == ALTERNATE_SHIFT_MODE2)
{
mode_flg = ORIGINAL_SHIFT_MODE;
}
else
{
mode_flg = ALTERNATE_SHIFT_MODE2;
}
GotoXY(1, 3);
printf("%s", shiftmode[mode_flg]);
SetKeyinputMode(mode_flg);
SetBackColor(CURSOR_COLOR);
GotoXY(i, 7);
PrintSymbol('_');
break;
case F2_KEY:
case SHIFT_F2_KEY:
SetBackColor(save_bcolor);
if (input_time == SHOW_TIME_MAX)
{
input_time = SHOW_TIME_MIN;
}
else
{
input_time++;
}
TimePrint();
SetBackColor(CURSOR_COLOR);
GotoXY(i, 7);
PrintSymbol('_');
break;
case F3_KEY:
case SHIFT_F3_KEY:
SetBackColor(save_bcolor);
if (input_time == SHOW_TIME_MIN)
{
input_time = SHOW_TIME_MAX;
}
else
{
input_time--;
}
TimePrint();
SetBackColor(CURSOR_COLOR);
GotoXY(i, 7);
PrintSymbol('_');
break;
default:
GotoXY(i, 7);
if (c >= 0x20 && c < 0x80)
{
SetBackColor(save_bcolor);
PrintSymbol(c);
i++;
if (i == 10) i = 1;
SetBackColor(CURSOR_COLOR);
GotoXY(i, 7);
PrintSymbol('_');
}
break;
}
}
if (exit_flg == 1) break;
Idle();
}
GotoXY(1, 9);
printf("Test Done!!\r\n");
while(1)
{
Idle();
}
}
最終更新日:2022/08/05