http://M.TangGaowei.com

2008-05-08 16:44:34  | 10,735 次浏览

VS2005 C++ MFC 智能设备应用程序中,在 Edit 控件里按“TBack”键时,并没有删除光标前的字符,而是最小化当前应用程序。要恢复 Edit 控件的 BackSpace 键功能,方法如下:

1. 函数申明:在 MyProjectDlg.h 中写到“DECLARE_MESSAGE_MAP()”语句之前

afx_msg LRESULT OnHotKey ( WPARAM wParam, LPARAM lParam );  // 一定要在 DECLARE_MESSAGE_MAP() 之前

DECLARE_MESSAGE_MAP()

2. 消息映射:在 MyProjectDlg.cpp 的 BEGIN_MESSAGE_MAP() 段添加代码

BEGIN_MESSAGE_MAP(….)

ON_MESSAGE( WM_HOTKEY, OnHotKey )

END_MESSAGE_MAP()

3. 函数定义:在 MyProjectDlg.cpp 中实现代码

LRESULT CMyProjectDlg::OnHotKey ( WPARAM wParam, LPARAM lParam )
{
    if(VK_TBACK == HIWORD(lParam))
    {        
          SHSendBackToFocusWindow( WM_HOTKEY , wParam, lParam);

          return 1;
    }

    return 0;
}

[ 标签: BackSpace, Edit控件, TBACK ]
[ 固定链接:http://m.tanggaowei.com/2008/05/08/76.html ]
2008-05-08 16:31:45  | 8,373 次浏览

1. 控件获得焦点时,屏蔽输入法

void CBlogEdit::OnSetFocus(CWnd* pOldWnd)
{
    CEdit::OnSetFocus(pOldWnd);

    // 关闭输入法
    HIMC hIMC = ImmGetContext( this->GetSafeHwnd() );
    ImmSetOpenStatus ( hIMC, FALSE );
}

2. 映射 WM_CHAR 消息到 OnChar ()

void CBlogEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
    // nChar 的值在不同手机上可能有所不同
    switch ( nChar )
    {
        // Up
        case 50:
        {
            this->LineScroll ( -1 );

            break;
        }

        // Down
        case 56:
        {
            this->LineScroll ( 1 );

            break;
        }

        // PageUp
        case 52:
        {
            this->LineScroll ( -11 );

            break;
        }

        // PageDown
        case 54:
        {
            this->LineScroll ( 11 );

            break;
        }
    }

    // CEdit::OnChar(nChar, nRepCnt, nFlags);
}

[ 标签: Edit控件, 屏蔽输入法, 翻页 ]
[ 固定链接:http://m.tanggaowei.com/2008/05/08/71.html ]

简介

随时随地(路上、车上、排队等)都可以进行交流、娱乐、学习、工作——移动新世界!

订阅

 

手机访问

http://m.tanggaowei.com/wap/
查找文章: