windows程式設計 畫鍵盤

2021-04-22 14:14:25 字數 2438 閱讀 3629

#include

#define sourcexw    150

#define    sourceyh    150//鍵盤的起始位置

#define    wkeyw    40

#define    hkeyh    40//基本鍵的高 寬

#define keyt    60    //定義tab的寬度;

#define wkeye    70    //定義enter建的寬度;

#define wkeys    100    //定義shift的寬度;

#define wkeyk    280    //定義空格鍵的寬度;

#define totalkeyw    600

#define totalkeyh    230//鍵盤的大小

#define th    3

#define tw    3

lresult callback wndproc(hwnd,uint,wparam,lparam);

int winapi winmain(hinstance hinstance,hinstance hprevinstance,pstr szcmdline,int icmdshow)

cw_usedefault, cw_usedefault,cw_usedefault,null,null,hinstance,null);

showwindow(hwnd,icmdshow);

updatewindow(hwnd);

while(getmessage(&msg,null,0,0))

return msg.wparam ;

}/*rect rect[40];

rect[0].left=

rect[0].right=rect[0].left+40;

rect[0].top=

rect[0].left=*/

/*畫乙個按鈕的函式*/

void createkeyboard(hdc hdc,int sourcex,int sourcey,int wkey,int hkey,lpctstr str)

lresult callback wndproc(hwnd hwnd, uint message, wparam wparam,lparam lparam)

;lpcstr str2=;

lpcstr str3=;

lpcstr str4=;

hbrush hbr1=createsolidbrush(rgb(255,0,0));

hbrush hbr2=createsolidbrush(rgb(0,255,0));

hbrush hbr3=createsolidbrush(rgb(0,0,255));

hbrush hbr4=createhatchbrush(hs_cross,rgb(250,50,100));

point pt=,,,,};

switch(message)

createkeyboard(hdc,sourcexw+wkeyw*13,sourceyh,keyt,hkeyh,"退格");

createkeyboard(hdc,sourcexw,sourceyh+hkeyh+th,keyt,hkeyh,"tab");

for(i=0;i<13;i++)

createkeyboard(hdc,sourcexw,sourceyh+(hkeyh+th)*2,wkeye,hkeyh,"caps");

for(i=0;i<11;i++)

createkeyboard(hdc,sourcexw+wkeyw*11+wkeye,sourceyh+(hkeyh+th)*2,wkeye,hkeyh,"enter");

createkeyboard(hdc,sourcexw,sourceyh+(hkeyh+th)*3,wkeys,hkeyh,"shift");

for(i=0;i<10;i++)

createkeyboard(hdc,sourcexw,sourceyh+(hkeyh+th)*4,keyt,hkeyh,"ins");

createkeyboard(hdc,sourcexw+wkeys,sourceyh+(hkeyh+th)*4,keyt,wkeyw,"del");

createkeyboard(hdc,sourcexw+wkeys+keyt,sourceyh+(hkeyh+th)*4,wkeyk,hkeyh,"");

createkeyboard(hdc,sourcexw+wkeyw*13,sourceyh+(hkeyh+th)*4,keyt,wkeyw,"esc");

return 0;

case wm_destroy:

// deleteobject(hbr);

postquitmessage(0);

return 0;

}return defwindowproc(hwnd,message,wparam,lparam);

}

Windows程式設計 鍵盤

窗體在失去焦點的時候發出 wm wm killfocus 窗體在獲得焦點的時候會發出 wm getfocus 只有活動視窗 會受到鍵盤訊息 受到鍵盤訊息的窗體可以是 活動窗體 也可以是活動窗體的 子窗體 也可以是活動窗體的 衍生窗體 字元資訊 例如 a按下了 既有字元資訊也有按鍵資訊 alt f4按...

Windows程式設計 鍵盤

窗體在失去焦點的時候發出 wm wm killfocus 窗體在獲得焦點的時候會發出 wm getfocus 只有活動視窗 會受到鍵盤訊息 受到鍵盤訊息的窗體可以是 活動窗體 也可以是活動窗體的 子窗體 也可以是活動窗體的 衍生窗體 字元資訊 例如 a按下了 既有字元資訊也有按鍵資訊 alt f4按...

windows程式設計筆記 八 畫筆與畫刷

在使用winapi繪圖的話,先要定義畫筆和畫刷 他們都是gui中所定義的圖形物件。hpen createpen int 樣式,int 寬度,rgb 255,0,0 建立畫筆 hbrush createhatchbrush int 樣式,rgb 255,0,0 建立陰影畫刷 hbrush create...