锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久亚洲私人国产精品vA,久久亚洲AV成人无码国产,久久国产精品77777http://www.shnenglu.com/yefeng/category/12095.html澶滈'blogzh-cnTue, 20 Oct 2009 10:24:57 GMTTue, 20 Oct 2009 10:24:57 GMT60铏氭嫙閿洏(杞敭鐩?璁捐瑕佺偣http://www.shnenglu.com/yefeng/archive/2009/10/18/98905.html澶滈澶滈Sun, 18 Oct 2009 15:19:00 GMThttp://www.shnenglu.com/yefeng/archive/2009/10/18/98905.htmlhttp://www.shnenglu.com/yefeng/comments/98905.htmlhttp://www.shnenglu.com/yefeng/archive/2009/10/18/98905.html#Feedback5http://www.shnenglu.com/yefeng/comments/commentRss/98905.htmlhttp://www.shnenglu.com/yefeng/services/trackbacks/98905.html    鍓嶄簺澶╄姳浜嗗緢澶氭椂闂村啓榪欐牱涓涓蔣閿洏錛屾晥鏋滄槸鏄劇ず涓涓笌閿洏澶栬鐩鎬技鐨勮鍥撅紝閫氳繃榧犳爣鍗曞嚮鍍忔椿鍔ㄧ獥鍙e彂閫佽櫄鎷熺殑閿洏娑堟伅銆傜洰鏍囨槸瀹炵幇鍍弚indows鑷甫鐨勮蔣閿洏osk鐩鎬技銆?br>    鐪嬩技寰堢畝鍗曠殑宸ヤ綔錛岃璁′腑鍗撮亣鍒頒簡寰堝鍥伴毦銆?br>    鍥伴毦涓錛氶敭鐩樻寜閿垎綾?br>        閿洏鎸夐敭鏈夊緢澶氱鍒嗙被鏂規硶銆?br>        絎竴縐嶏細鎸夋樉紺哄垎綾匯傛寜浣弒hift閿紝瀛楁瘝閿佺鍙烽敭鏄劇ず涓婇潰鐨勫瓧絎︼紱鎸変笅caps lock閿紝瀛楁瘝閿垏鎹負澶у啓瀛楁瘝銆?br>        絎簩縐嶏細鎸夊姛鑳藉垎綾匯傚ぇ浣撴湁鍙樉紺哄瓧絎︾被銆佹帶鍒剁被銆傛帶鍒剁被鍖呮嫭shift錛宑trl絳夈?br>        涓轟簡瑙e喅鍙彉鐨勬樉紺洪棶棰橈紝閲囩敤浜嗕竴涓嚜鎴戞劅瑙夐潪甯稿ソ鐨勮В鍐蟲柟妗堬細瀛楃闆嗐侀敭闆嗙浉浜掔嫭绔嬨傚姝や竴鏉ワ紝鍙鎬諱綋鎸夌収鍔熻兘鍒嗙被錛岄氳繃鐗瑰畾鍔熻兘鐨勬寜閿帶鍒舵湁鏁堝瓧絎﹂泦鍗沖彲錛屼篃灝辨槸璇達紝瀵規櫘閫氭寜閿潵璇達紝瀹冨彧璐熻矗鍒版寚瀹氱殑瀛楃闆嗕腑鍘誨彇瀵瑰簲搴忓彿鐨勫瓧絎﹀嵆鍙?br>
//LabelSet.h
#pragma once

//瀛楁瘝鏍囩闆嗗悎
class LabelSet
{
public:
    LabelSet(LPCSTR
* _pTable,int _n);
    LPCSTR getLabel(
int _id) const;

    
~LabelSet();

protected:
    LabelSet(){}

private:
    LPCSTR
* pTable;
    
int n;
};

//鐩稿綋浜庡崟鍒鍙屾幏寮鍏崇粍
class LabelSetEx
{
protected:
    
struct Switch
    {
        LabelSet
* s[2];
        
int at;
    };

public:
    LabelSetEx(
int _n);
    
bool addSets(int id,LPCSTR* s1,LPCSTR* s2,int n,int at = 0);
    LPCSTR getLable(
int id,int off) const;
    
void turn(int id);

    
~LabelSetEx();

private:
    
int n;    //寮鍏崇粍鎬諱釜鏁?/span>
    Switch* pGroup;    //寮鍏崇粍
};

//
//LabelSet.cpp
#include "StdAfx.h"
#include 
"LabelSet.h"
#include 
<algorithm>
#include 
<cassert>

using namespace std;

LabelSet::LabelSet( LPCSTR
* _pTable,int _n )
{
    n 
= _n;
    pTable 
= new LPCSTR[n];
    copy(_pTable,_pTable 
+ _n,pTable);
}

LPCSTR LabelSet::getLabel( 
int _id ) const
{
    
return pTable[_id];
}

LabelSet::
~LabelSet()
{
    delete [] pTable;
}

LabelSetEx::LabelSetEx( 
int _n )
{
    n 
= _n;
    pGroup 
= new Switch[n];
    memset(pGroup,
0,n * sizeof(pGroup[0]));
}

LabelSetEx::
~LabelSetEx()
{
    
while(n--)
    {
        
if(pGroup[n].s[0== pGroup[n].s[1])
            delete pGroup[n].s[
0];
        
else
        {
            delete pGroup[n].s[
0];
            delete pGroup[n].s[
1];
        }
    }
    delete [] pGroup;
}

bool LabelSetEx::addSets( int id,LPCSTR* s1,LPCSTR* s2,int n,int at /*= 0*/ )
{
    assert((at 
& ~1== 0);
    
if(pGroup[id].s[0!= NULL)
        
return false;
    LabelSet
* p = new LabelSet(s1,n);
    pGroup[id].s[
0= p;
    
if(s1 == s2)
        pGroup[id].s[
1= p;
    
else
        pGroup[id].s[
1= new LabelSet(s2,n);
    pGroup[id].at 
= at;
    
return true;
}

LPCSTR LabelSetEx::getLable( 
int id,int off ) const
{
    Switch
* p = pGroup + id;
    
return p->s[p->at]->getLabel(off);
}

void LabelSetEx::turn( int id )
{
    assert((pGroup
->at & ~1== 0);
    pGroup[id].at 
^= 1;
}
        浠ヤ笂鍙栧紑鍏崇殑绱㈠紩id鏄寚瀛楃闆嗙殑鍒嗙被id錛屽湪config.h鏂囦歡涓嬪畾涔変簡榪欐牱鐨刬d
#pragma once

//鍒嗙被id鐨勫畾涔?/span>
#define LABEL_SET_ALPHA  0
#define LABEL_SET_SYMBOL 1
#define LABEL_SET_NUMPAD 2
#define LABEL_SET_MAIN   3
#define LABEL_SET_HELP   4

//瀛楁瘝涓茶〃
extern LPCSTR AlphaTable1[];    //灝忓啓
extern LPCSTR AlphaTable2[];    //澶у啓
extern const int AlphaTableSize;

//絎﹀彿涓茶〃
extern LPCSTR SymbolTable1[];    //涓?/span>
extern LPCSTR SymbolTable2[];    //涓?/span>
extern const int SymbolTableSize;

//灝忛敭鐩樻暟瀛楄〃
extern LPCSTR NumPadTable1[];    //鏁板瓧
extern LPCSTR NumPadTable2[];    //鍏夋爣鎺у埗
extern const int NumPadTableSize;

//涓婚敭鐩樺崟鏄?/span>
extern LPCSTR MainTable[];
extern const int MainTableSize;

//杈呭姪閿洏鍗曟樉
extern LPCSTR HelpTable[];
extern const int HelpTableSize;

struct KeyConfig
{
    
short id;        //鍒嗙被id
    short offset;    //綾誨唴鍋忕Щ
    RECT rt;    //浣嶇疆
    BYTE vk;    //铏氭嫙鐮?/span>
};

extern KeyConfig kcs[];
extern const int kcSize;
extern const SIZE kbSize;
        絎竴嬈¤繖鏍峰啓浠g爜錛屽啓瀹屽彂鐜拌繖鏍鋒瀬澶у湴鎻愰珮浜嗙伒媧繪э紝鍙鍦ㄩ厤緗枃浠禼onfig.cpp涓慨鏀癸紝灝卞彲浠ヤ駭鐢熷緢澶氱涓嶅悓鐨勭晫闈紙铏界劧浠嶇劧鏄唬鐮佺駭鍒殑錛屾瘯绔熻繄鍑轟簡絎竴姝ワ紝浠婂悗榪樹細灝濊瘯鏀規垚xml閰嶇疆錛夈?br>        璦褰掓浼狅紝榪欐牱鐨勮璁″垎紱諱簡鎸夐敭涓庢樉紺猴紝鍙厤緗兘鍔涘ぇ澶у姞寮恒備絾浠嶇劧瀛樺湪絎簩涓ぇ闂銆?br>    闂浜岋細杈撳叆鐒︾偣鐨勭‘瀹?br>        鏂規涓錛氱幇鍦ㄥ彧瑕佸湪緗戜笂鎼滅儲“铏氭嫙閿洏”錛岃兘澶熸悳鍒頒竴澶ф簻鐨勬簮浠g爜錛屼絾鍙彲鎯滃叏鏄悓涓浠芥嫹璐濓紝鑰屼笖瀛樺湪涓鐐瑰皬閿欒銆備粬鐨勮В鍐蟲柟妗堟槸錛氬埄鐢?PreTranslateMessage錛屽湪搴曞眰璋冪敤瀹冧箣鍓嶏紝鍓嶅彴紿楀彛浠嶇劧娌℃湁鏀瑰彉錛屾鏃舵槸鑾峰緱鍓嶄竴涓墠鍙扮獥鍙g殑濂芥椂鏈猴紝鑾峰緱鍚庝繚瀛橈紝騫跺皢浣跨敤 AttachThreadInput灝嗗綋鍓嶇嚎紼嬬粦瀹氭椿鍔ㄧ獥鍙g殑娑堟伅闃熷垪錛岀劧鍚庡湪鍗曞嚮铏氭嫙閿洏鏃朵嬌鐢⊿etFocus灝嗕繚瀛樼殑紿楀彛璁句負鐒︾偣錛堟簮浠g爜涓悓鏃朵嬌鐢ㄤ簡SetForgroundWindow鍜孲etFocus錛岃繖鏄け鏁堢殑鍘熷洜錛夛紝鐒跺悗鍙戦佽櫄鎷熸寜閿?br>
        鏂規浜岋細鍏跺疄鏈夋洿綆渚跨殑鏂規硶銆傝緗富紿楀彛灞炴т負WM_ES_NOACTIVATE錛岃繖鏍風獥鍙e氨涓嶄細鎴愪負鍓嶅彴紿楀彛錛屼笉綆″浣曞彂閫侀敭鐩樻秷鎭紝鎷ユ湁鐒︾偣鐨勭獥鍙f諱細鏀跺埌銆備絾姝ゆ椂浠嶇劧瀛樺湪闂銆傚綋縐誨姩紿楀彛鏃訛紝鏁堟灉涓嶅ぇ欏虹晠錛岃屼笖娌″姙娉曞搷搴旇彍鍗曞懡浠わ紝閭f槸鍥犱負璇ョ獥鍙e緇堜笉鏄墠鍙扮獥鍙i犳垚鐨勩傝В鍐蟲柟娉曞氨鏄湪鍗曞嚮鏍囬鏍忔椂錛屾垚涓哄墠鍙扮獥鍙o紝閲婃斁鏄綊榪樺墠鍙般?br>
void CMainFrame::OnNcLButtonDown(UINT nHitTest, CPoint point)
{
    
if(m_hForground == NULL)
    {
        m_hForground 
= ::GetForegroundWindow();
        ModifyStyleEx(WS_EX_NOACTIVATE,
0);
        SetForegroundWindow();
    }
    CFrameWnd::OnNcLButtonDown(nHitTest, point);
}
                浣嗘槸錛屽鏋滄兂褰撶劧褰掕繕鍓嶅彴浣跨敤WM_NCLBUTTONUP娑堟伅鐨勮瘽錛屽氨瑕佽浣犲け鏈涗簡錛寃indows浼間箮鏈夋剰璺熸垜浠紑鐜╃瑧錛屽繀欏誨崟鍑諱袱嬈℃墠鑳藉搷搴旇繖涓秷鎭傛病鍔炴硶錛屼簬鏄皾璇昗M_NCMOUSELEAVE錛屼絾鏁堟灉涔熶笉濂斤紝鏈緇堝皾璇昗M_NCMOUSEMOVE錛屽緢濂斤紝榪欐緇堜簬鎴愬姛浜嗐?br>
void CMainFrame::OnNcMouseMove(UINT nHitTest, CPoint point)
{
    
if(m_hForground != NULL)
    {
        ::SetForegroundWindow(m_hForground);
        ModifyStyleEx(
0,WS_EX_NOACTIVATE);
        m_hForground 
= NULL;
    }
    CFrameWnd::OnNcMouseMove(nHitTest, point);
}
        闂鍒版涓烘錛岀幇鍦ㄨ璇翠竴鐐瑰皬灝忕殑鍙戠幇銆?br>        鍘熸湰浠ヤ負涓鑸殑鎸夐敭灝變袱縐嶇姸鎬侊紝閫氳繃down銆乽p鏀瑰彉錛屽鏋滅敤鏂規嘗鎻忚堪錛宒own灝辨槸涓嬮檷娌胯Е鍙戯紝up鏄笂鍗囨部瑙﹀彂銆備篃鏇句簡瑙o紝鍍弒hift榪欐牱鐨勬寜閿細寰堝鏉傦紝瀛樺湪澶氫釜鐘舵併傚悗鏉ユ祴璇曞彂鐜幫紝shift騫墮潪涓涓壒渚嬶紝鎵鏈夌殑鎸夐敭閮芥湁4涓姸鎬侊紝閫氳繃down銆乽p鏀瑰彉鐘舵併傚彧鏄笉鍚屾寜閿鐘舵佺殑鍏蟲敞鐐逛笉鍚屻?br>        鍙互鍋氳繖鏍蜂竴涓祴璇曪紝鐢℅etKeyboardState寰楀埌鍚勪釜铏氭嫙鐮佸搴旂殑鎸夐敭鐘舵併傛渶楂樹綅涓?鏃惰〃紺洪敭琚寜涓嬶紝鏈楂樹綅涓?鏃訛紝濡傛灉鏄痩ock閿垯琛ㄧず琚攣浣忥紝瀵逛簬鍏朵粬閿紝鍚勬湁鍚勭殑浣滅敤銆?br>        姣斿涓涓敭錛岀敤2浣嶇殑浜岃繘鍒舵暟琛ㄧず榪欎簺鐘舵侊紝璁懼垵濮嬬姸鎬佷負10錛岀粡榪嘾own鍚庯紝鍙樹負01錛岀粡榪噓p鍚庯紝鍙樹負11,鍐嶇粡榪嘾own鍚庯紝鍙樹負00錛屽啀緇忚繃up鍚庯紝鍙樹負10錛屽姝ゅ洓涓姸鎬佺粡榪嘾own銆乽p瀹炵幇浜嗗懆鏈熸х殑鐘舵佽鎹€傚ぇ浣撶鍚堣繖鏍風殑瑙勫緥錛?br>            10-(down xor 11)->01->(up xor 10)->11-(down xor 11)->00(up xor 10)->10銆?br>        榪欐牱錛屽鏋滆櫄鎷熷緱姣旇緝褰誨簳錛屽湪铏氭嫙閿洏鍐呴儴鍙互杞繪槗鍦板疄鐜扮姸鎬佺殑璁板繂錛屽茍涓斿彲浠ヨ幏寰楄凍澶熺殑淇℃伅銆傚浜庢樉紺恒佹帶鍒墮兘闈炲父鏂逛究銆?br>
    榪欏彧鏄涓涓増鏈紝榪樻湁寰堝闂闇瑕佽В鍐熾?br>    寰呰В鍐抽棶棰樹竴錛歺ml閰嶇疆鍔ㄦ侀厤緗敭鐩橈紝鍙婂姩鎬佹洿鎹㈡樉紺烘晥鏋溿?br>    寰呰В鍐抽棶棰樹簩錛氬悓姝ョ墿鐞嗛敭鐩樸?br>    寰呰В鍐抽棶棰樹笁錛氭洿娣卞眰嬈★紝闃叉閿洏娑堟伅琚玥ook錛屽垵姝ヨ璇嗭紝浼間箮鍙互浣跨敤鍓創鏉褲?br>   銆愭簮浠g爜1.2鐗堟湰錛?a href="http://www.shnenglu.com/Files/yefeng/VirtualKeyboard1.2.rar">http://www.shnenglu.com/Files/yefeng/VirtualKeyboard1.2.rar銆?/span>


澶滈 2009-10-18 23:19 鍙戣〃璇勮
]]>
久久国产亚洲精品| 国产精品久久久久乳精品爆| 中文精品久久久久人妻| 久久精品国产亚洲AV香蕉| 伊人丁香狠狠色综合久久| 国内精品久久国产| 午夜不卡888久久| 久久精品国产72国产精福利| 热re99久久6国产精品免费| 久久亚洲天堂| 国内精品欧美久久精品| 国产精品美女久久久久| 少妇人妻综合久久中文字幕| 久久精品毛片免费观看| 精品久久久久中文字幕一区| 麻豆亚洲AV永久无码精品久久| 国产成人无码精品久久久久免费| 久久精品成人欧美大片| 亚洲精品国产自在久久| 69久久夜色精品国产69| 浪潮AV色综合久久天堂| 久久综合久久鬼色| 久久久精品午夜免费不卡| 九九99精品久久久久久| 99精品国产在热久久无毒不卡 | 无码任你躁久久久久久| 91精品久久久久久无码| 久久精品国产免费观看三人同眠| 国产成人精品久久亚洲| 久久精品免费一区二区三区| 久久精品人成免费| 久久亚洲精品成人av无码网站| 777午夜精品久久av蜜臀| 久久久精品国产sm调教网站| 一本久久综合亚洲鲁鲁五月天| 精品无码久久久久久久动漫| 国内精品久久久久久久久电影网| 99久久精品国产麻豆| 国产精品岛国久久久久| 国产精品久久久久AV福利动漫| 色婷婷久久综合中文久久蜜桃av|