经过很长一段时间的摸索,最后,得到了以下的方法,可以实现在对话框上添加软键盘,并且店家键盘的按钮可以实现文本在编辑框中的显示。现在把操作方法写下来。
第一步:导入5个文件,CZStatic.h和.cpp,CZButton.h和.cpp,KeyBoard.h和cpp,define.h。
第二步:在想要添加软键盘的对话框的头文件中添加,以上的四个头文件。
第三步:定义一个CZButton类型的键盘对象。
static CZButton * s_cbKeyboard = NULL ;
第四步:在初始化函数中添加代码:
HINSTANCE hInstResource;
hInstResource=AfxGetInstanceHandle();
if(s_cbKeyboard == NULL)
{
s_cbKeyboard = new CZButton(0,320,800,250,hInstResource,m_hWnd,BUTTON_KEYBOARD) ;
s_cbKeyboard->SetUpBitmap(IDB_BMP_BKG) ;
s_cbKeyboard->SetFontSize(40) ;
s_cbKeyboard->SetButTextColor(RGB(50,50,50)) ;
s_cbKeyboard->SetButtonType(TYPE_CONTROL) ;
//s_cbKeyboard->SetWindowPos(hInstResource,HWND_TOP,0,300,300,300) ;
}
s_cbKeyboard->SetVisible(TRUE) ;
第五步:添加显示键盘的函数:
void ShowKeyboard2(BOOL mShow ,int xpos ,int ypos ,int width ,int height)
{
// s_bisShowKeyBoard = mShow ;
if(mShow)
{
if(s_cbKeyboard)
{
SetWindowPos(s_cbKeyboard->m_hWnd,HWND_TOP,xpos,ypos,width,height,SWP_SHOWWINDOW) ;
SendMessage(s_cbKeyboard->m_hWnd, WM_LBUTTONUP, 0, 0);
s_cbKeyboard->SetVisible(TRUE) ;
}
}
else
{
if(s_cbKeyboard)
{
SetWindowPos(s_cbKeyboard->m_hWnd,HWND_BOTTOM,xpos,ypos,width,height,SWP_SHOWWINDOW) ;
ShowWindow(s_cbKeyboard->m_hWnd,SW_HIDE) ;
}
}
}
注意:这里需要添加一个.bmp图片。