EIN | Дата: Вторник, 01.05.2007, 19:02 | Сообщение # 1 |
Доброволец
Группа: Проверенные
Сообщений: 2
Статус: Offline
| Каким образом доделать виртуальную графическую клавиатуру в С++?? 2 недели парюсь, чтото гдето не стыкуется...
Дорогу Зухелям!!!
|
|
| |
zythar | Дата: Среда, 02.05.2007, 12:58 | Сообщение # 2 |
protected by MAFIA
Группа: злые_админы
Сообщений: 96
Статус: Offline
| этт те на ЯваСкрипте. МОжет как то под С++ подстроишь?:)) Code | <script type="text/javascript" > <!-- var tField,tImg; try{tField=window.opener.document.addform.message;} catch(e){} try{tImg=document.getElementById("keyb");} catch(e){} var ie4=document.getElementById && document.all; var ns6=document.getElementById && !document.all; ru1=new Image();ru1.src="http://src.ucoz.ru/img/fr/ru1.png"; ru2=new Image();ru2.src="http://src.ucoz.ru/img/fr/ru2.png"; <p> aRu1=new Array(1105,49,50,51,52,53,54,55,56,57,48,45,61, 1081,1094,1091,1082,1077,1085,1075,1096,1097,1079,1093,1098, 1092,1099,1074,1072,1087,1088,1086,1083,1076,1078,1101,92, 60,1103,1095,1089,1084,1080,1090,1100,1073,1102,46, 64,36,8364,165,35, 32, 38,124,37,167,126 ); aRu2=new Array(1025,33,34,8470,59,37,58,63,42,40,41,95,43, 1049,1062,1059,1050,1045,1053,1043,1064,1065,1047,1061,1066, 1060,1067,1042,1040,1055,1056,1054,1051,1044,1046,1069,47, 62,1071,1063,1057,1052,1048,1058,1068,1041,1070,44, 169,174,8482,105,247, 32, 123,125,91,93,177 ); <p> function testcoord(x,y){ var id; if(y>=0 && y<20 && x<280) id="link"; if(y>=0 && y<20 && x>=280) id="close"; if(y>=20 && y<40){if(x<260)id=(x-x%20)/20;if(x>=260)id="bs";} if(y>=40 && y<60){if(x<30)id="tab";if(x>=30)id=13+(x-30-(x-30)%20)/20;if(x>=270)id="del";} if(y>=60 && y<80){if(x<35)id="shift";if(x>=35)id=25+(x-35-(x-35)%20)/20;if(x>=275)id="enter";} if(y>=80 && y<100){if(x<25)id="shift";if(x>=25)id=37+(x-25-(x-25)%20)/20;if(x>=245)id="shift";} if(y>=100){if(x<100)id=48+(x-x%20)/20;if(x>=100)id=53;if(x>=200)id=54+(x-200-(x-200)%20)/20;} return id; } function putie(cmd){ tField.focus(); var cs=window.opener.document.selection.createRange(); var i; if(cmd=="close")window.close(); if(cmd=="bs"){if(cs.text=='')cs.moveStart('character',-1);cs.text='';} if(cmd=="del"){if(cs.text=='')cs.moveEnd('character',1);cs.text='';cs.collapse(false);} if(cmd=="enter"){if(tField.type!="textarea")return false;cs.text='\n';} if(cmd=="shift"){i=tImg.src;if(i.search(/ru1.+/)!=-1)tImg.src=ru2.src;if(i.search(/ru2.+/)!=-1)tImg.src=ru1.src;} if(cmd=="tab"){if(tField.type!="textarea")return false;cs.text='\t';} if(!isNaN(cmd)){i=tImg.src;if(i.search(/ru1.+/)!=-1)cs.text=String.fromCharCode(aRu1[cmd]);if(i.search(/ru2.+/)!=-1)cs.text=String.fromCharCode(aRu2[cmd]);} cs.select();focus(); return false; } function putns(cmd){ tField.focus(); var i; if(cmd=="close")window.close(); if(cmd=="bs")tField.value=tField.value.slice(0,tField.value.length-1); if(cmd=="del")tField.value=tField.value.slice(0,tField.value.length-1); if(cmd=="enter"){if(tField.type!="textarea")return false;tField.value=tField.value+'\n';} if(cmd=="shift"){i=tImg.src;if(i.search(/ru1.+/)!=-1)tImg.src=ru2.src;if(i.search(/ru2.+/)!=-1)tImg.src=ru1.src;} if(cmd=="tab"){if(tField.type!="textarea")return false;tField.value=tField.value+'\t';} if(!isNaN(cmd)){i=tImg.src;if(i.search(/ru1.+/)!=-1)tField.value=tField.value+String.fromCharCode(aRu1[cmd]);if(i.search(/ru2.+/)!=-1)tField.value=tField.value+String.fromCharCode(aRu2[cmd]);} focus(); return false; } function mclick(e){ if(!tField || !tImg) return false; var objId; if(ie4) objId=window.event.srcElement.id; if(ns6) objId=e.target.id; if(objId!="keyb") return false; if(ie4) {x=event.clientX-parseInt(tImg.style.left);y=event.clientY-parseInt(tImg.style.top);if(!(x>=0))x=event.offsetX;if(!(y>=0))y=event.offsetY;putie(testcoord(x,y));} if(ns6) {x=e.clientX-parseInt(tImg.style.left);y=e.clientY-parseInt(tImg.style.top);if(!(x>=0))x=e.layerX;if(!(y>=0))y=e.layerY;putns(testcoord(x,y));} return false; } document.onmousedown = mclick; //--> </script> | З.Ы. в ближайшее время найду исходники на С++.
protected by MAFIA. MAFIA never dies. Я бы изменил мир, но Бог не дает исходников... огонек лазерного прицела : тонкий намек на твое превосходство.
|
|
| |
EIN | Дата: Среда, 02.05.2007, 13:10 | Сообщение # 3 |
Доброволец
Группа: Проверенные
Сообщений: 2
Статус: Offline
| о! то что надо вот терь только разберусь с вводом цифр и всё.Добавлено (02.05.2007, 13:10) ---------------------------------------------
Quote (DeviL) | ru1=new Image();ru1.src="http://src.ucoz.ru/img/fr/ru1.png"; ru2=new Image();ru2.src="http://src.ucoz.ru/img/fr/ru2.png"; <p> aRu1=new Array | вот токо зачем это???
Дорогу Зухелям!!!
|
|
| |
zythar | Дата: Среда, 02.05.2007, 13:29 | Сообщение # 4 |
protected by MAFIA
Группа: злые_админы
Сообщений: 96
Статус: Offline
| EIN, чесс говоря не зна.:) я просто взял сурс с сайта. как видишь у формы быстрого ответа сесть ссылка клавиатура. вот туда нажал потом нажал Вю сурс:)
protected by MAFIA. MAFIA never dies. Я бы изменил мир, но Бог не дает исходников... огонек лазерного прицела : тонкий намек на твое превосходство.
|
|
| |
AVT | Дата: Четверг, 03.05.2007, 14:40 | Сообщение # 5 |
Рыцарь темной луны
Группа: Модераторы
Сообщений: 21
Статус: Offline
| Братан , мой тебе совет : Такие вещи пиши на Яве : Запускаеться долго , зато красиво и работает быстро , а если с графическим с++ проблемы переходи на Делфи : cамая простая и мощная визуальная прога!!
|
|
| |